2013-08-20 64 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