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

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

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


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

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

总之,jQuery在时刻践行它的口号:少写,多效。


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

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

用小字偷偷说,我司招人,北京广州的同学有意的话请联系我。

【热门文章】
【热门文章】