事件委託與阻止冒泡

簡單說下事件委託與阻止冒泡

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#


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章