2014-07-23 80 views
3

有沒有什麼辦法可以檢索當前在jQuery中選擇的鼠標移動處理程序?在jQuery中檢索mousemove處理程序

正常的方法,按照標準的jQuery,只是簡單地調用$('selector').mousemove(),但我看到事件模擬事件而不是返回處理程序。

這可能嗎?

+2

你在找像'變種處理程序= $ ._數據($(選擇)[0], '事件')鼠標移動;'看http://jsfiddle.net/arunpjohny/75fAn/1/ –

+0

@ArunPJohny這看起來完全像我以後 - 你可以發佈它作爲答案? –

回答

3

,我認爲你是什麼都連接到一個元素的鼠標移動處理程序,在這種情況下,你可以使用非記錄方法jQuery._data()

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

這裏handlers將是一個後對象數組,其中每個對象都指向mousemove事件的處理程序。從對象中,您可以使用handler屬性獲取處理程序方法。

演示:Fiddle

+0

完美,謝謝。 –

1

嘗試這樣

<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

+0

這是設置一個處理程序 - 我試圖檢索對現有處理程序的引用。 –

0

您需要設置處理函數鼠標移動()

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

對於你的e xample是:

$(document).mousemove(handlerfunction); 

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

這是設置一個處理程序 - 我試圖檢索對現有處理程序的引用。 –

+0

'使用$(document).mousemove(handlerfunction); ' – SlyBeaver