我想在所有record_row
div onclick的基礎上執行一項操作。我正在通過$('.record_row').live("click",function(){})
來做這件事。裏面record_row div我把option_icon
div其中 我已經把圖像。我已經阻止了onclick="event.cancelBubble = true;"
的onclick記錄。它正在 罰款$('.option_icon').click(function(){})
但不能與$('.option_icon').live("click",function(){})
功能。event.cancelBubble不適用於.live
有什麼建議嗎?提前致謝。
HTML: -
<div id="container">
<ul>
<li><div id="data_item_1" class="record_row">
User record displayning here
<div class="option_icon" onclick="event.cancelBubble = true;">
-----
</div>
</div>
</li>
<li>
<div id="data_item_2" class="record_row">
.........
<div class="option_icon" onclick="event.cancelBubble = true;">
-----
</div>
</div>
</li>
</ul>
</div>
jQuery的: -
$('.record_row').live("click",function(){
-----------
-----------
// working fine
});
$('.option_icon').live("click",function(e){
e.stopPropagation();
-----------
-----------
// Not working
});
[生活()](http://api.jquery.com/刪除onclick事件處理程序live /)已被棄用,您應該使用替代方法,但即使如此,正如文檔所述,*在事件處理函數中調用event.stopPropagation()對於停止附加在文檔中較低位置的事件處理函數是無效的;該事件已經傳播到文檔*(將'cancelBubble'設置爲'true'相當於調用'stopPropagation()')。 –
'event.cancelBubble'是IE如何停止事件傳播,jQuery統一接口並提供'event.stopPropagation()'。 –
此外,'onclick'和所有其他內聯事件處理程序都皺起了眉頭。不要這樣做。你**從來沒有**需要混合JS代碼和HTML,尤其是*因爲你有jQuery。 – Tomalak