在jQuery中检索鼠标移动处理程序

Retrieving the mousemove handler in jQuery

本文关键字:移动 处理 程序 鼠标 检索 jQuery      更新时间:2023-09-26

是否有任何方法来检索当前鼠标移动处理程序的选择在jQuery?

正常的方法,按照标准的jQuery,将是简单地调用$('selector').mousemove(),但我看到,对于事件,这模拟事件,而不是返回处理程序。

这可能吗?

我认为你需要的是附加到元素上的鼠标移动处理程序,在这种情况下,你可以使用非文档方法jQuery._data(),如

var handlers = $._data($('div')[0], 'events').mousemove;

这里handlers将是一个对象数组,其中每个对象引用mousemove事件的处理程序。从对象中,您可以使用handler属性获得处理程序方法。

演示:小提琴

试试

<div id="target">Move here</div>
<div id="other">Trigger the handler</div>
<div id="log"></div>
jquery

$( "#target" ).mousemove(function( event ) {
  var msg = "Handler for .mousemove() called at ";
  msg += event.pageX + ", " + event.pageY;
  $( "#log" ).append( "<div>" + msg + "</div>" );
});

API参考jQuery mousemove

需要设置处理函数为mousemove()

$(document).mousemove(function(event){
  console.log(event.pageX + ", " + event.pageY);
}); 

你的例子是:

$(document).mousemove(handlerfunction);
function handlerfunction(event){
    console.log(event.pageX + ", " + event.pageY);
}