2013-08-20 95 views
2

如何使用jQuery爲特定元素觸發mouseover事件,而不允許將事件傳播到父控件。手動觸發mouseover事件而不允許事件傳播

我知道如何觸發事件:$('selector').trigger('mouseover');

比如我有一個imagetr。我有兩個懸停事件處理程序。 我想爲圖像手動觸發懸停事件。

有沒有人有想法?

+2

您必須更改事件處理程序才能停止傳播。 – adeneo

回答

3

我找到了一個請看示例here。 以下是解決我的問題的代碼:

var event = jQuery.Event('<event_name>'); 
event.stopPropagation(); 
$('<selector>').trigger(event); 
2

您可以將mouseover附加爲普通事件偵聽器,然後執行此類操作。

$("selector").on('mouseover', function(event){ 
    event.stopPropagation(); 
    // do something 
}); 

這將停止冒泡到容器元素的事件。 然後,您可以打電話給你的扳機,你通常會

$('selector').trigger('mouseover'); 
0

使用mouseenterevent.stopPropagation()

$("img").on('mouseover', function(e){ 
    e.stopPropagation(); 
    // do something 
}); 

$("img").on('mouseenter', function(e){ 
    // do something 
}); 

閱讀mouseenter()mouseover()

+0

這對我沒有幫助,因爲我想觸發已經附加到此事件的事件處理程序,無論何時何地。 – Vladislav