
正文
原生js注册委托事件 原生js操作dom
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
事件代理和事件委托
事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件,事件委托又叫事件代理。举一个通俗的例子:有三个同事预计会在周一收到快递。
事件委托也叫事件代理,就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。
事件代理(事件委托)由于事件会在冒泡阶段向上传播到父节点,因此可以把子节点的监听函数定义在父节点上,由父节点的监听函数统一处理多个子元素的事件。这种方法叫做事件的代理(delegation)。
事件委托基于冒泡,对于不冒泡的事件不支持 层级过多,冒泡过程中,可能会被某层阻止掉。理论上委托会导致浏览器频繁调用处理函数,虽然很可能不需要处理。
相关问答
Q1: JS-阻止冒泡事件与事件委托
1、事件冒泡:开始时由最具体的元素接收,然后逐级向上传播到到 DOM 最顶层节点。
2、阻止冒泡事件 主要是用于阻止事件传播。阻止它被分派到其他的DOM节点上,在事件传播的任何阶段都能使用。
3、js阻止冒泡 在阻止冒泡的过程中,W3C和IE采用的不同的方法,那么我们必须做以下兼容。
4、首先:你不想使用的方法恰恰是推荐的最好的方法,为什么不用推荐的方法呢。
5、当我们点击子元素,触发的时事件会传递给父元素,这就是事件冒泡。
6、javascript禁止冒泡可以使用事件的 .stopPropagation()方法,该方法可以完全阻止事件冒泡。
Q2: 原生js怎么注册委托事件
第一种办法是实现起来简单,可是如果子元素较多,这种做会对性能有较大的影响,而且如果是动态添加的dom元素,那么还需要在添加的时候再手动添加事件。
/* HTML结构 *//* jQuery:$(div).on(click,*,function(e){}); div绑定Click事件,H3是没有绑定Click事件的。
要了解委托的原理,首先要理解DOM事件的过程。
事件委托也称为事件代理, 在 jQuery 里面称为事件委派。 不是每个子节点单独设置事件监听器,而是事件监听器设置在其父节点上,然后利用冒泡原理影响设置每个子节点。
Q3: 原生js如何绑定a连接点击事件?
1、在function(e){}函数体中用语句 e.preventDefault();(#id).click(function(e) { e.preventDefault();});错在:这个是jquery代码,没有加载jquery库就不能运行,其次,这个return false不对。
2、利用事件冒泡,把事件绑定在 document 上,在回调函数里判断事件的 target 就行了。
3、在index.html的script标签中,输入js代码:window.location.href = http:// + $(div a).attr(href);。浏览器运行index.html页面,此时取出了div中a标签中的百度知道链接并自动点击跳转了。
4、第一种办法是实现起来简单,可是如果子元素较多,这种做会对性能有较大的影响,而且如果是动态添加的dom元素,那么还需要在添加的时候再手动添加事件。
5、建议你用jquery吧。可以把dom写成组件,直接调用。或者把dom隐藏起来,用时显示。
6、最好是在元素生成的时候就加上事件,不然的话比较麻烦。在jquery中,你也可以用live()和delegate()这样的方法绑定元素,是实时监听的。
Q4: js事件委托是怎么做的
1、第一种办法是实现起来简单,可是如果子元素较多,这种做会对性能有较大的影响,而且如果是动态添加的dom元素,那么还需要在添加的时候再手动添加事件。
2、而事件委托就是利用的DOM事件的事件捕获阶段。把具体dom上发生的事件,委托给更大范围的dom去处理。好比送信员,如果每次都把信件送给每一户,非常繁琐。
3、标准写法:利用事件对象里面的 stopPropagation()方法 e.stopPropagation() 非标准写法:IE 6-8 利用事件对象 cancelBubble 属性 e.cancelBubble = true;事件委托也称为事件代理, 在 jQuery 里面称为事件委派。
4、为签收快递,有两种办法:一是三个人在公司门口等快递;二是委托给前台MM代为签收。现实当中,我们大都采用委托的方案(公司也不会容忍那么多员工站在门口就为了等快递)。
5、你好!jQuery中的事件委托,一般都是使用$(父类).on(事件,子类或特定元素,function(){逻辑处理})ajax请求返回了一段html代码,并追加到了#div1这个元素上。
Q5: JS中如何巧妙的用事件委托Script
1、(缺点 1 for循环影响性能,2每次循环都会在内部创建一个事件,3 如果 li 是动态追加的会导致事件失效。
2、第一种办法是实现起来简单,可是如果子元素较多,这种做会对性能有较大的影响,而且如果是动态添加的dom元素,那么还需要在添加的时候再手动添加事件。
3、这些新添加的元素都不用再绑定事件处理函数了,通通由a元素去处理即可(a元素通过target对象就可以知道事件委托方是哪个元素,从而进行不同的处理),这样就简化了程序,也避免了相互之间发生冲突的可能性。这就是事件委托。
4、标准写法:利用事件对象里面的 stopPropagation()方法 e.stopPropagation() 非标准写法:IE 6-8 利用事件对象 cancelBubble 属性 e.cancelBubble = true;事件委托也称为事件代理, 在 jQuery 里面称为事件委派。
关于原生js注册委托事件和原生js操作dom的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。





