jQuery:如何获取光标下的元素?

我正在做一个拖放操作,当我将一个元素放在我的方式上时,我想要一个元素向下移动。

一个简单的黑客就是这样说:

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

然后当你需要调用什么函数来获取值时,只需使用hoverElem

编辑:这是一个资源密集度较低的电话:

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

编辑2:由于.live()被弃用,你应该使用.on()

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

这比将鼠标处理程序附加到每个元素(也在mouseleave上触发)要便宜得多,尤其是你得到的元素越多。

我不知道是否有标准方法,但我可能会将“鼠标hover”事件绑定到您可能想要向下移动的所有元素,然后测试以查看您当前是否正在拖动对象。

同样,我真的不知道你的确切设置,但你可以有一个全局变量var currentlyDragging = false然后当你开始拖动时将它设置为true 。 然后,当您将鼠标hover在要移开的元素上时,可以测试以查看currentyDragging变量是否为真,如果是,则可以移动它。

有点复杂,但我真的不能想到任何其他方式来做到这一点。 🙂