Désactiver mousemove cliquez sur
Je suis en train d'expérimenter sur un drag 'n' drop, c'est mon code ici:
$('.box-title').live('mousedown click', function(e)
{
var self = $(this);
var Box = self.parent('#box');
if(e.type == 'mousedown')
{
$(window).mousemove(function(e)
{
Box.css({ cursor: 'move', top: e.pageY - 15, left: e.pageX - 125 });
});
}
else if(e.type == 'click')
{
Box.css({ cursor: 'default', top: e.pageY - 15, left: e.pageX - 125 });
}
});
Sur mousedown, il devrait procéder à effet de glisser-déposer, déplacez la souris, après que si je veux dock/déposer la boîte où je le veux pour moi, je clique dessus, il faut désactiver le déplacement, mais si je clique dessus, il n'a pas arrêter de bouger - continue juste à la suite de ma souris. Comment pouvez-vous arrêter de le glisser?
OriginalL'auteur MacMac | 2011-01-03
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de séparer la
mousemove
gestionnaire qui est encore attaché actuellement, par exemple:Ou, dans jQuery 1.4.3+ que
.live()
gestionnaire peut être un peu plus propre:En aparté, il apparaît vous avez plusieurs
id="box"
les éléments dans la page...assurez-vous que l'utilisation de classes dans ces cas, dans ce code$(this).parent('#box')
serait$(this).closest('.box')
à la place.OriginalL'auteur Nick Craver
Essayez d'ajouter
$(window).unbind('mousemove')
dans votre événement click.
OriginalL'auteur David Stinemetze
Mais vraiment, vous devriez nom de l'événement, de sorte que vous n'annulez la liaison à la appropriée de l'écouteur d'événement.
Lier :
$(window).bind('mousemove.dragging', function(){});
Unbind :
$(window).unbind('mousemove.dragging', function(){});
OriginalL'auteur Josiah Ruddell