美文网首页
dom的一点看法

dom的一点看法

作者: 郑馋师 | 来源:发表于2019-12-12 23:47 被阅读0次

阻止冒泡和默认事件

JS事件流其中一种是冒泡事件,当一个元素被触发一个事件时,该目标元素的事件会优先被执行,然后向外传播到每个祖先元素,恰如水里的一个泡泡似的,从产生就一直往上浮,到在水平面时,它才消失。在这个过程中,如果你只希望事件发生在目标元素,而不想它传播到祖先元素上去,那么你需要在“泡泡”离开对象之前刺破它。
js冒泡和捕获是事件的两种行为,使用event.stopPropagation()起到阻止捕获和冒泡阶段中当前事件的进一步传播。使用event.preventDefault()可以取消默认事件。

function stopBubble(e) { 
//一般都会提供,因为现在已经不是ie的时代了
if ( e && e.stopPropagation ) 
    e.stopPropagation(); }

阻止默认事件

function stopDefault(e) { 
//一般都会提供,因为现在已经不是ie的时代了
if ( e && e.preventDefault ) 
    e.preventDefault(); }

事件委托

有了事件冒泡,事件委托就有了基础,可以将事件的处理程序绑定给一个父级元素,当任何子节点触发了匹配的父级元素绑定的事件,即可触发父级节点的处理程序,这就是 事件委托 。eg中即时没有给每个 <li> 绑定事件,也会在点击任何一个 <li> 节点后跳转百度 。
eg

<ul onclick="location.herf'https://www.baidu.com/">
    <li>One</li>
    <li>Two</li>
    <li>Three</li>
</ul>

减少事件绑定,事件委托将很多子元素的事件绑定都集中到一个通用的父元素,使得动态创建和移除的元素更加方便,不需要考虑元素的事件绑定逻辑。假设需要对 <li> 标签进行增加,只管进行操作就行,不用增加元素的 “onclick” 事件。
减少事件监听使用的内存,这可能对那些经常重新加载的小页面效果不明显,但是对需要长时间运行的应用很重要。因为当元素被从 DOM 中移除之后很难追踪它对内存的使用,造成内存泄露,这是由元素的事件绑定造成的。有了事件委托,在移除子元素之后不用担心没有解除绑定事件。

相关文章

  • dom的一点看法

    阻止冒泡和默认事件 JS事件流其中一种是冒泡事件,当一个元素被触发一个事件时,该目标元素的事件会优先被执行,然后向...

  • 【xianyuit】20170815

    今天学习 1.【DOM转CANVAS】 大致了解了canvas可以将dom转成图片,还有二维码生成 今日看法 感悟...

  • 一点看法

    滴滴打车屡出安全事故甚而杀人强奸等恶性案件,如郑州空姐被杀,乐清女子被杀因媒体及时且汹涌报导,引起监管重视才引出柳...

  • 一点看法

    嗯,说实话我不知道怎么去评价一个人,也不知道等下说得对不对。现在有点担心等下会不会被说是以小人之心度君子之腹。我希...

  • 一点看法

    我不知道怎么去评价一个人,只能说说自己的看法吧,仅供参考哈! 提起老梁(梁锦辉),314A马上会想到的一个词是“学...

  • 一点看法

    今天在微信上看到《北大留美博士写万字文指责父母“过度关爱”,12年没回家过春节》一文,到底是怎样的过度关爱导致一个...

  • 一点看法

    这几天刷微博,热搜榜高举不下的有这几个:男子当街暴打女子,男子为买房弑母骗保,泰国孕妇被丈夫推下悬崖,云南女子当街...

  • 一点看法

    关于对调整的看法,分享从另外一个角度的看法。 一般情况下,很多人喜欢听到“躲避调整”,听起来很爽的观点,这也是很多...

  • 一点看法

    看到一条新闻,说是疫情之后离婚的预约猛增。 我就有些奇怪了,虽然疫情影响了民众的生活,可是这也是多年以来第一次这么...

  • 一点看法

    今天又得到一个消息,某校长为了大批生产中层领导,又任命一年轻后生为党办副主任,主抓纪检工作,单位五十人,领...

网友评论

      本文标题:dom的一点看法

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