javascript - 如何为元素及其父元素分配不同的事件处理程序

标签 javascript html dom dom-events

假设我有这样的结构:

<ul id="a">text
    <li id="b">text</li>
    <li id="c">text</li>
</ul>

如何为 a、b 和 c 分配不同的事件处理程序(例如,onclick 监听器)?当我将处理程序分配给 <ul> 时, 它会在任何 <li> 时被触发被点击。

最佳答案

与其为列表中的每个元素设置单个处理程序,不如在父级上使用单个事件监听器,并使用事件委托(delegate)检测哪个是用户单击的元素的 ID

$('ul').on('click', function(evt) {
   id = evt.target.id;
   switch (id) {
      "a" : ... break;
      "b" : ... break;
      "c" : ... break;
      default: ... ;
   }   

});

关于javascript - 如何为元素及其父元素分配不同的事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9767714/

相关文章:

javascript - 如何在一个应用程序中同时使用 jQuery Mobile 和 Backbone JS?

javascript - 如何使用 $http 的结果创建一个变量?

javascript - 简单的加仑计算器

javascript - 如何使用 JavaScript/JQuery 显示表单中所有 HTML 输入值的摘要?

javascript - 为什么单击时我的 div 会变大?

jquery - document.elementFromPoint 在 jQuery 中不起作用

javascript - 将网格刻度增加 1

javascript - JQuery 在无序列表中查找下一个类

javascript - 如何获取父容器的所有后代元素?

javascript - 如何每秒迭代一次数组,以便 h1 元素每秒改变颜色?