JS addeventlistener点击父母不是孩子

时间:2014-05-06 12:05:00

标签: javascript jquery events google-chrome-extension click

我有父母和孩子的父母是扩展/ colaps的盒子和儿童按钮女巫也点击处理其他处理如何让孩子在孩子被囚禁时点击不活跃?

这是父母:

$('#'+groupId)[0].addEventListener("click", collapseExpand);


<div id="title_group0">smth (1)<img id="coltitle_group0" src="chrome-extension://.../images/collapse.png" collapsed="yes" title="Show Divvies in this box" class="boxButton"><img src="chrome-extension://.../images/wrench_icon&amp;16.png" id="boxSettingsButton0" title="Settings" class="boxButton"><img style="display:none;" src="chrome-extension://.../images/sort_a.png" id="sorting_desc_asctitle_group0" class="sortIcon"><b style="display:none;" class="sortType">ABC</b></div>

3 个答案:

答案 0 :(得分:0)

您点击了stop propagation(取消冒泡):

$('#'+groupId)[0].addEventListener("click", function(e) {
    e.stopPropagation();
    collapseExpand(e); // You can omit the `e` if the function doesn't need it
});

通过在子事件处理程序中执行此操作,可以防止父元素看到单击。


旁注:你似乎是半使用jQuery。要充分利用它:

$('#'+groupId).on("click", function(e) {
    e.stopPropagation();
    collapseExpand(e); // You can omit the `e` if the function doesn't need it
});

答案 1 :(得分:0)

我认为您可以尝试使用event.stopPropagation()

$('#'+groupId).click(function(event){
    collapseExpand()
    event.stopPropagation()
});

这将阻止事件的传播。

答案 2 :(得分:0)

$('.foobar').on('click', function(e) {
   if (e.target !== this) return;

    alert( 'clicked the foobar' );
});

试试这个 -

http://jsfiddle.net/eaVzx/165/