Javascript 触发子元素';s onclick事件,但不是父项';s
我有一些嵌套元素,每个元素都有一个onclick事件。在大多数情况下,我希望在用户单击子事件时触发这两个事件(父事件和子事件都被触发-默认行为)。但是,至少有一种情况,我希望触发子对象的onclick事件(从javascript,而不是用户的单击),而不是父对象的onclick事件。如何防止触发父事件 我当时是: 用户单击A:A的onclick激发。Javascript 触发子元素';s onclick事件,但不是父项';s,javascript,jquery,onclick,event-propagation,Javascript,Jquery,Onclick,Event Propagation,我有一些嵌套元素,每个元素都有一个onclick事件。在大多数情况下,我希望在用户单击子事件时触发这两个事件(父事件和子事件都被触发-默认行为)。但是,至少有一种情况,我希望触发子对象的onclick事件(从javascript,而不是用户的单击),而不是父对象的onclick事件。如何防止触发父事件 我当时是: 用户单击A:A的onclick激发。 用户单击B:B的onclick激发,A的onclick也激发 手动触发B的点击:B触发,A不触发(这是问题所在)在孩子身上使用;这将不允许事件通
用户单击B:B的onclick激发,A的onclick也激发
手动触发B的点击:B触发,A不触发(这是问题所在)在孩子身上使用;这将不允许事件通过DOM传播: 使用.triggerHandler()创建的事件不会在DOM中冒泡 等级制度如果它们不是由目标元素直接处理的, 他们什么也不做 方法1: 您可以使用方法来防止事件冒泡。
$('.element').on('click', function(e){
e.stopPropagation();
});
看看这个
方法2:
您可以使用return false
来防止事件冒泡,这也将防止默认操作
$('.element').on('click', function(e){
//--do your stuff----
return false;
});
正是我需要的!我有点惊讶在我的搜索中没有出现它。triggerHandler('click')在safari中不起作用。有野生动物园的工作吗?@Shab你可以用。看到我的答案了吗