事件绑定与解绑
- jQuery中有两种绑定事件方式
- eventName(fn);编码效率略高/部分事件jQuery没有实现,所以不能添加
- on(eventName,fn);编码效率略低/所有js事件都可以添加
- 两种方式都可以添加多个相同或者不同类型的事件,不会被覆盖
- jQuery中通过off解绑事件
- 如果不传递参数,会移除所有的事件
- 如果传递一个参数,会移除所有指定类型的事件
- 如果传递两个参数,会移除所有指定类型的指定事件
jQuery事件自动触发
- 有两种方法,trigger和triggerHandler
- 如果利用trigger自动触发事件,会触发事件冒泡和默认行为
- 如果利用triggerHandler自动触发事件,不会触发事件冒泡和默认行为
- 注意点:如果想用trigger自动触发a标签的事件,同时想要触发默认行为,需要在a标签中添加一个span标签把文字包裹起来,然后自动触发span标签
- 自定义事件和事件命名空间必须满足两个条件
- 事件必须通过on绑定
- 事件必须通过trigger/triggerHandler来触发
- 利用trigger触发子元素带命名空间的事件,那么父元素带相同命名空间的事件也会被触发,而父元素没有命名空间的事件不会被触发
- 利用trigger触发子元素不带命名空间的事件,那么子元素所有相同类型的事件和父元素相同类型的事件都会被触发
事件委托
- 可以找一个在入口函数执行之前就有的元素来监听动态添加元素的某些事件
- 在jQuery中,如果通过核心函数找到的元素不止一个,那么在添加事件的时候,jQuery会遍历所有找到的元素,给所有找到的元素添加事件
- .on(eventName,selector,fn);
网友评论