开发者社区> 问答> 正文

jquery事件有哪些优缺点呢?使用中我们应该避免哪些问题?

小旋风柴进 2016-03-25 14:54:20 895

最近要做一个关于jquery事件源代码的一个分享,但是实在不知道怎么去把这个分享做好,所以就想问问大家对于jquery事件有哪些困惑以及心得,多谢啦!

JavaScript
分享到
取消 提交回答
全部回答(2)
  • 一生有你llx
    2019-07-17 19:14:23

    楼上很对

    0 0
  • 小旋风柴进
    2019-07-17 19:14:23

    好像没啥缺点,说说优点吧。

    当然是兼容性了。虽然现在标准浏览器的市场份额越来越高,但是回想当年,没有jQuery,开发难度立马上升很多。
    方便的事件托管。在jQuery中,我们可以非常方便的使用.on('event', 'selector', function),把事件响应函数托管给父级容器,这样在列表类的应用中,不仅可以大大减少内存占用,还可以放心的移除新增子元素。
    部分事件增加冒泡。submit事件在IE中是不冒泡的,jQuery人工给它增加了冒泡能力。
    方便的trigger。虽然用起来都是事件,但其实不同的事件存在于不同的命名空间中,自己写的时候多半得查下资料,用jQuery的话直接trigger就好。
    批量off。原生JavaScript中,removeEventListener一次只能移除一个事件的一个侦听函数。jQuery中则可以一次性移除多个侦听或托管,甚至全部侦听。尤其在移除DOM元素前,非常有用。
    事件命名空间。使用命名空间可以更方便的批量管理事件。
    一次性操作多个事件。传递事件类型时可以使用空格分隔,达到一次绑定多个事件到同一个选择器和同一个处理函数的目的。
    总之,jQuery在时刻践行它的口号:少写,多效。

    补充两点不算缺点的注意事项吧。

    jQuery使用自定义事件取代原生事件。早期的事件属性比较简单,jQuery会把常用属性复制到自定义事件上,比如target、currentTarget。但是后来新增的事件,比如ctrl+v粘贴时触发的ClipboardEvent.paste,要访问剪切板的内容,就必须通过originEvent找到原生事件,才能访问.data。我有一篇博客记录了这个情况。
    使用事件托管时,currentTarget和this指向的都是selector指定的DOM节点。
    使用事件托管,移除事件时,需要指定selector,不然移除的是父节点本身的侦听,而不是子节点的侦听。

    0 0
添加回答

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程