2014-05-06 156 views
-2

我有父母和孩子的父母是扩大/盒子和孩子的女巫还点击处理其他处理如何让父母不活跃点击时孩子被束缚?JS addeventlistener点击父母不是孩子

这是父:

$('#'+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> 
+0

你的问题并不清楚.. – Bik

+0

能否请您发布一些HTML? –

+2

阻止孩子的事件监听器中的子节点 –

回答

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 
}); 
+0

我想OP是要求停止传播给父母的孩子。这甚至有可能吗?我想在一个Modal窗口的例子中这样做,我希望用户能够在模态的内容之外点击。即:

efwjames

0

我想你可以尝试使用event.stopPropagation()这样的:

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

这将阻止事件的传播。