如何使用jQuery为特定元素触发mouseover事件,而不允许将事件传播到父控件。手动触发mouseover事件而不允许事件传播
我知道如何触发事件:$('selector').trigger('mouseover');
比如我有一个image
内tr
。我有两个悬停事件处理程序。 我想为图像手动触发悬停事件。
有没有人有想法?
如何使用jQuery为特定元素触发mouseover事件,而不允许将事件传播到父控件。手动触发mouseover事件而不允许事件传播
我知道如何触发事件:$('selector').trigger('mouseover');
比如我有一个image
内tr
。我有两个悬停事件处理程序。 我想为图像手动触发悬停事件。
有没有人有想法?
我找到了一个请看示例here。 以下是解决我的问题的代码:
var event = jQuery.Event('<event_name>');
event.stopPropagation();
$('<selector>').trigger(event);
您可以将mouseover附加为普通事件侦听器,然后执行此类操作。
$("selector").on('mouseover', function(event){
event.stopPropagation();
// do something
});
这将停止冒泡到容器元素的事件。 然后,您可以打电话给你的扳机,你通常会
$('selector').trigger('mouseover');
使用mouseenter
或event.stopPropagation()
像
$("img").on('mouseover', function(e){
e.stopPropagation();
// do something
});
或
$("img").on('mouseenter', function(e){
// do something
});
这对我没有帮助,因为我想触发已经附加到此事件的事件处理程序,无论何时何地。 – Vladislav
您必须更改事件处理程序才能停止传播。 – adeneo