我遇到了一個我不知道解決方案的問題。jQuery:綁定可以處理其子項事件的單個事件偵聽器
假設我有這樣的HTML標記(由服務器或只是一個靜態文件動態生成):
<ul class="myList">
<li><a href="page1.html">Page 1</a></li>
<li><a href="page2.html">Page 2</a></li>
<li><a href="page3.html">Page 3</a></li>
<li><a href="page4.html">Page 4</a></li>
<li><a href="page5.html">Page 5</a></li>
<li><a href="page6.html">Page 6</a></li>
<!-- ... -->
<li><a href="page1000.html">Page 1000</a></li>
</ul>
我要綁定一個click事件處理程序的<一個>標籤。通常情況下,我會寫出來
$('.myList').find('a').click(function() {}); /* Or something similar */
這將在所有的錨標籤執行隱迭代click事件綁定到他們每個人。不過,我被告知這是一項昂貴的操作。
我被問到是否有某種方法只附加一個事件監聽器(在ul標籤上)並使用事件冒泡來確定哪個錨標籤被點擊。我從來沒有遇到過這樣的事情,所以我不知道答案。顯然,有一個答案。有沒有人知道如何在一個元素上放置一個事件監聽器,並讓它找出哪個子元素被點擊了? (我仍然需要使用event.preventDefault()來防止默認的單擊事件。)
+1我忘了'delegate()'。 – alex 2011-06-02 00:50:36