簡單說下事件委託與阻止冒泡
html:
<ul class="clearfix" data-type="cityPick">
<li class="active_sort_opts" data-id="0">全部</li>
<li data-id="88">紐約</li>
<li data-id="119">洛杉磯</li>
<li data-id="138">拉斯維加斯</li>
<li data-id="84">夏威夷</li>
<li data-id="120">舊金山</li>
<li data-id="105">奧蘭多</li>
<li data-id="118">西雅圖</li>
</ul>
js:
$("ul[data-type='cityPick']").on('click',function(){
alert("父元素ul被點擊");
});
$("ul[data-type='cityPick']").on('click','li',function(){
alert("子元素li被點擊");
});
當點擊具體的li元素時,發現ul的事件也被觸發了,這是我們不想看到的。
解決:
$("ul[data-type='cityPick']").on('click',function(){
alert("父元素ul被點擊");
});
$("ul[data-type='cityPick']").on('click','li',function(e){
e.stopPropagation();//阻止冒泡
alert("子元素li被點擊");
});
更多講解與優秀文章:http://www.ituring.com.cn/article/467#