美文网首页
js事件代理

js事件代理

作者: mochase | 来源:发表于2016-06-23 10:57 被阅读56次
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <ul id="parent-list">
      <li id="post-1">Item 1</li>
      <li id="post-2">Item 2</li>
      <li id="post-3">Item 3</li>
      <li id="post-4">Item 4</li>
      <li id="post-5">Item 5</li>
      <li id="post-6">Item 6</li>
    </ul>
    <script>
        document.getElementById("parent-list").addEventListener("click",function(e) {
          // 检查事件源e.targe是否为Li
          if(e.target && e.target.nodeName.toUpperCase() == "LI") {
            // 真正的处理过程在这里
            console.info(e.target)
            console.log("List item ",e.target.id," was clicked!");
          }
        });
    </script>
</body>
</html>

事件捕获:当某个元素触发某个事件(如onclick),顶层对象document就会发出一个事件流,随着DOM树的节点向目标元素节点流去,直到到达事件真正发生的目标元素。在这个过程中,事件相应的监听函数是不会被触发的。

事件目标:当到达目标元素之后,执行目标元素该事件相应的处理函数。如果没有绑定监听函数,那就不执行。

事件起泡:从目标元素开始,往顶层元素传播。途中如果有节点绑定了相应的事件处理函数,这些函数都会被一次触发。如果想阻止事件起泡,可以使用e.stopPropagation()(Firefox)或者e.cancelBubble=true(IE)来组织事件的冒泡传播。

delegate.jpg

相关文章

  • JS写事件代理

    js中的事件委托或是事件代理详解

  • dom事件代理

    实现一个js事件代理的模块,帮助用户快速实现事件代理。

  • js事件代理

    当我们需要对很多元素添加事件的时候,可以通过将事件添加到他们的父节点来触发处理函数。 example: 我们给每个...

  • js事件代理

    事件代理在JS世界中一个非常有用也很有趣的功能。当我们需要对很多元素添加事件的时候,可以通过将事件添加到它们的父节...

  • js事件代理

    事件捕获:当某个元素触发某个事件(如onclick),顶层对象document就会发出一个事件流,随着DOM树的节...

  • js事件代理

    var oUl = document.getElementById('test');oUl.addEventLis...

  • js事件深入学习

    JavaScript的事件机制包含,事件绑定、事件监听、事件委托(事件代理)等 js中的事件流 ① .冒泡:当下级...

  • js事件委托/事件代理

    事件委托就是利用事件冒泡,只指定一个时间处理程序就可以管理某一类型的所有事例。 优点:提高性能 JavaScrip...

  • JS事件委托(事件代理)

    什么是事件委托? 举个例子,我们要实现点击 li 时打印其id 一般我们会给每一个li绑定一个事件处理函数 这种方...

  • js 事件委托 事件代理

    js 事件委托 事件代理 JavaScript高级程序设计上解释:事件委托就是利用事件冒泡,只指定一个事件处理程序...

网友评论

      本文标题:js事件代理

      本文链接:https://www.haomeiwen.com/subject/xnindttx.html