Je ne vais pas répéter essentiellement les mêmes autres ont posté un code, mais un frein appropriée ne doit pas être déclenchée sur simple mousedown un événement.
Sur mousedown, vous devez marquer un glissement possible et enregistrer les coordonnées de la souris où le mousedown s'est produit, puis attacher un gestionnaire mousemove. (De cette façon, vous ne suivez pas constamment les mouvements de souris lorsque vous ne les intéressez que pendant un glisser)
Le gestionnaire de mousemove ne doit modifier la classe CSS de l'élément déplacé que lorsque la distance entre les coordonnées de mousedown enregistrées et le les coordonnées actuelles de la souris sont supérieures à certains delta. Cela empêche tout clic bref/accidentel de ressembler à un glisser.
Enfin, sur drop (mouseup), manipulez l'événement drop comme vous le souhaitez et effacez le drapeau de glissement possible et les coordonnées de mousedown sauvegardées. Regarder un système d'exploitation Cliquer sur un icône et le maintenir sur une icône sans bouger, puis commencer à bouger - vous verrez que ce contour est son comportement.
Juste pour ajouter à ceux qui trouvent ceci. La méthode .live() est maintenant détruite à partir de jQuery 1.7. Vous pouvez utiliser la méthode [.on()] (http://api.jquery.com/on/) à sa place. – tokyovariable