我有一个导航结构,其中html元素具有父子关系。
<div id="navigationStructure">
<div class="addId">
<ol class="sortable ui-sortable">
<!----------Parent li for navigation ----------->
<li data-title="Home" data-link="" data-target="_self" class="item_0">
<div class="active">
Home
</div>
<ol>
<!----- CHILD li 1----------->
<li data-title="About" data-link="" data-target="_self" style="display: list-item;" class="item_1">
<div class="">
About
</div>
</li>
<!--------- CHILD li 2------------>
<li data-title="Products" data-link="" data-target="_self" style="display: list-item;" class="item_2">
<div class="">
Products
</div>
</li>
</ol>
</li>
<li data-title="Category" data-link="" data-target="_self" class="item_3">
<div>
Category
</div>
<ol>
<li data-title="Contact" data-link="" data-target="_self" style="display: list-item;" class="item_4">
<div>
Contact
</div>
</li>
</ol>
</li>
</ol>
</div>
我正在尝试编写一个函数,以便在单击父项或子项时触发并选择它。
$('#popUpComponentSetting').on("click","#navigationStructure li", function() {
$('#navigationStructure ol li div').removeClass('active');
$('> div',this).addClass('active');
navId = $(this).attr('class');
.....
})
现在,如果我点击孩子,它会触发两次,一次是父母,另一次是孩子。
我浏览了here以上的帖子,但我想要一些与众不同的东西。我需要有一个适用于父母和孩子的同一事件
答案 0 :(得分:2)
使用event.stopPropgation()
,
$('#popUpComponentSetting').on("click","#navigationStructure li", function(e) {
e.stopPropagation();
//rest of your code