假設我們有一個HTML的結構是這樣掌握事件冒泡
<div id="container">
<div id="nested">
<span id="someElement"></span>
</div>
</div>
...,我們的目標是對#container
僅事件偵聽器!所以,我們綁定監聽器(jQuery代碼)
$("#container").on('click', function(event) {
alert("container was clicked");
});
當然這樣的作品,但我的這種方法的問題是,由於事件通常冒泡,那聽衆也會如果我們實際點擊#nested
或#someElement
火。我目前的解決方案僅處理click當#container
點擊與event.target
$("#container").on('click', function(event) {
if(this === event.target) {
alert("container was clicked");
}
});
我的問題比較this
:這算是「最佳實踐」?有沒有更好的方式與jQuery完成相同的結果「開箱即用」?
例子在行動:http://jsfiddle.net/FKX7p/
IMO,這是最好的做法。 – VisioN
@jSang:實際上,內部元素在點擊時沒有任何聽衆。這是否被認爲是最佳做法?綁定每個元素只是爲了阻止傳播? –
我也沒有看到任何更好的方法,事實上,我打算將其作爲答案發布,直到我看到您已經擁有該代碼。 –