2013-10-22 59 views
4

我試圖用jQuery手動觸發mousemove事件。在這個小提琴演示http://jsfiddle.net/qJJQW/如何從jQuery觸發鼠標移動事件

從其他類似的帖子在stackoverflow似乎這應該工作。爲什麼不是?

謝謝大家。

$(function() { 
    $("#test").on("mousemove", youCantHandleTheFunc); 

    $('#button').click(function() { 
     $('#test').trigger('mousemove', {type:'custom mouse move'}); 
    }); 
}); 

function youCantHandleTheFunc (e,customE) { 
    if (customE != undefined) { 
     e = customE; 
    } 
    $('#result').html(e.type); 
} 

Your updated fiddle.

回答

3

使用jQuery的mousemove事件綁定?

$(function(){ 
    $('#test').on('mousemove', youCantHandleTheFunc); 

    $('#button').click(function(){ 
     $('#test').trigger('mousemove',{type:'custom mouse move'}); 
    }); 
}); 

function youCantHandleTheFunc(e,customE){ 
    if (customE!=undefined){ 
     e=customE; 
    } 
    $('#result').html(e.type); 
} 

FIDDLE

+0

謝謝你,大加讚賞。我認爲這可能是它,但後來偶然發現在jQuery文檔中的這一行''爲了觸發通過jQuery綁定的處理程序,而不觸發本地事件,請使用.triggerHandler()。「'這對我說,替代'觸發器)'函數確實會觸發本地事件(也許我對本地事件的理解是有限的。:) – hofnarwillie

4

jQuery的trigger()只有觸發事件處理程序使用jQuery設置: