我遇到了一个我不知道解决方案的问题。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