首页 文章

触发子元素's onclick event, but not parent' s

提问于
浏览
3

我有一些嵌套元素,每个元素都有一个onclick事件 . 在大多数情况下,我希望在用户单击子项时触发这两个事件(触发父事件和子事件 - 默认行为) . 但是,至少有一种情况我想触发孩子的onclick事件(来自javascript,而不是用户的点击),而不是父母的 . 如何防止此事件触发父事件?

enter image description here

我的是:

User clicks A: A的onclick火灾 .
User clicks B: B 's onclick fires, A' s onclick也会发射
Manually trigger B's click: B火灾,A不火(这个是问题)

2 回答

  • 4

    对孩子使用triggerHandler;这不会让事件通过DOM传播:

    使用.triggerHandler()创建的事件不会冒泡DOM层次结构;如果它们不是直接由目标元素处理的,它们什么都不做 .

  • 3

    方法1:

    您可以使用stopPropagation()方法来防止事件冒泡 .

    $('.element').on('click', function(e){
    e.stopPropagation();
    });
    

    看看这个DEMO

    方法2:

    您可以使用 return false 来防止事件冒泡,这也会阻止默认操作 .

    $('.element').on('click', function(e){
    //--do your stuff----
    return false;
    });
    

相关问题