jQuery: comment puis-je placer l’élément sous mon curseur?

Je fais un glisser-déposer et je veux qu’un élément soit rétrogradé lorsque je rapproche un élément de celui qui se trouve sur mon chemin.

un simple hack serait de dire quelque chose comme:

var hoverElem = null; $('*').hover(function() {hoverElem = this}); 

alors quand vous avez besoin d’appeler quelle que soit la fonction pour obtenir la valeur, utilisez simplement hoverElem

EDIT: cet appel nécessite moins de ressources:

 $('*').live('mouseenter', function() { hoverEleme = this; }); 

EDIT 2: en raison de la dépréciation de .live (), vous devez utiliser .on ()

 $("*").on("mouseenter", function() { hoverElem = this; }); 
 $('*').on('mouseenter', function() { hoverEleme = this; }); 

Cela coûte beaucoup moins cher que d’attacher un gestionnaire de souris à chaque élément (qui se déclenche également avec le déplacement de souris), en particulier si vous avez d’autres éléments.

Je ne sais pas s’il existe un moyen standard, mais je lierais probablement un événement “mouseover” à tous les éléments que vous pourriez vouloir déplacer vers le bas si vous les survolez, puis testez pour voir si vous faites actuellement glisser un object.

Encore une fois, je ne connais pas vraiment votre configuration exacte, mais vous pourriez avoir une variable globale var currentlyDragging = false lorsque vous commencez à faire glisser le définir à true . Ensuite, lorsque vous passez la souris sur un élément que vous souhaitez déplacer, vous pouvez vérifier si votre variable currentyDragging est vraie et si c’est le cas, vous pouvez la déplacer.

Un peu compliqué, mais je ne peux pas vraiment penser à une autre façon de le faire par la tête. 🙂