美文网首页
Javascript中的事件委托和代理

Javascript中的事件委托和代理

作者: Wendy81 | 来源:发表于2016-04-20 22:36 被阅读0次

Javascript中的事件委托和代理

当我们需要对很多元素添加事件的时候,可以通过将事件添加到它们的父节点而将事件委托给父节点来触发处理函数。这主要得益于浏览器的事件冒泡机制

```

<ul>

<li class="tt" data-role="menu"></li>

<li class="tt" data-role="menu"</li>

</ul>

```

使用事件代理机制,当事件被抛到更上层的父节点document的时候,我们通过检查事件的目标对象(target)来判断并获取事件源Li。

```

var docBody = $(document.body);

docBody.delegate('.tt,*[data-role="mneu"]','click',function (e) {//class 为"tt"或都data-role='menu'的所有li,这里可以添加多个条件

e.stopPropagation(); //stop propagation

console.log(e.target.id);

});

```

原理是

为父节点添加一个click事件,当子节点被点击的时候,click事件会从子节点开始向上冒泡。父节点捕获到事件之后,通过判断e.target来判断是否为我们需要处理的节点。从而可以获取到相应的信息,并作处理。

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

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

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

详细查看:https://davidwalsh.name/event-delegate

相关文章

  • 概念

    事件委托,事件代理 事件代理又称之为事件委托。是JavaScript中常用绑定事件的常用技巧。顾名思义,“事件代理...

  • 事件委托

    JavaScript事件代理和委托(Delegation) 在javasript中delegate这个词经常出现,...

  • Javascript中的事件委托和代理

    Javascript中的事件委托和代理 当我们需要对很多元素添加事件的时候,可以通过将事件添加到它们的父节点而将事...

  • js事件深入学习

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

  • 什么是事件委托?

    1.什么是事件委托?事件委托也称之为事件代理(Event Delegation)。是JavaScript中常用绑定...

  • JavaScript的事件代理和事件委托

    JavaScript中的事件委托是很重要的一个东西,事件委托依靠的就是事件冒泡和捕获的机制。 事件冒泡怎么实现,先...

  • js 事件委托 事件代理

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

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

    基本概念 事件代理(Event Delegation),又称之为事件委托。是JavaScript中常用绑定事件的常...

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

    简单说下为什么要有事件委托比如我们有1w个li, 要实现每个li点击触发事件, 如果对每个li都进行事件绑定那就太...

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

    基本概念 事件代理(Event Delegation),又称之为事件委托。是JavaScript中常用绑定事件的常...

网友评论

      本文标题:Javascript中的事件委托和代理

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