jQuery中事件绑定有两种方式

① eventName(function(){})
绑定对应事件名的监听, 例如:$(’#div’).click(function ( ){ });

②on(eventName, funcion(){})
通用的绑定事件监听, 例如:$(’#div’).on(’ click ', function( ){ });

事件解绑
jQuery中可以通过off(eventName,function);解绑事件
例:$(’#div’).off(’ click ', function( ){ });

如何在JQuery中阻止时间冒泡
在子集事件中添加语句:ev.stopPropagation();

如何阻止事件默认行为?
可以使用ev.preventDefault();方法阻止事件默认行为方法

什么是自动触发事件?

通过代码控制事件, 不用人为点击/移入/移除等事件就能被触发
自动触发事件方式
① $(“selector”).trigger(“eventName”);
触发事件的同时会触发事件冒泡
触发事件的同时会触发事件默认行为
② $(“selector”).triggerHandler(“eventName”);
触发事件的同时不会触发事件冒泡
触发事件的同时不会触发事件默认行为

事件命名空间和自定义事件
什么是自定义事件
?
:自定义事件就是自己虾XX起一个不存在的事件名称来注册事件, 然后通过这个名称还能触发对应的方法执行, 这就是传说中的自定义事件

自定义事件的前提条件
1.事件必须是通过on绑定的
2.事件必须通过trigger来触发
因为trigger方法可以自动触发对应名称的事件,所以只要事件的名称和传递给trigger的名称一致就能执行对应的事件方法

什么是事件命名空间?

众所周知一个元素可以绑定多个相同类型的事件.企业多人协同开发中,如果多人同时给某一个元素绑定了相同类型的事件,但是事件处理的方式不同,就可能引发事件混乱

为了解决这个问题jQuery提出了事件命名空间的概念

事件命名空间主要用于区分相同类型的事件,区分不同前提条件下到底应该触发哪个人编写的事件
格式: “eventName.命名空间”

添加事件命名空间的前提条件
1.事件是通过on来绑定的
2.通过trigger触发事件

①不带命名空间事件被trigger调用,会触发带命名空间事件(不带—带)
②带命名空间事件被trigger调用,只会触发带命名空间事件(带—带)
③下级不带命名空间事件被trigger调用,会冒泡触发上级不带命名空间和带命名空间事件(下不带—上所有)
④下级带命名空间事件被trigger调用,不会触发上级不带命名空间事件(下不带–不会—上不带)
⑤下级带命名空间事件被trigger调用,会触发上级带命名空间事件(下带—上带)

事件委托
什么是事件委托?

例如: 张三在寝室不想去食堂吃饭,那么张三可以"委托"李四帮忙带一份饭
例如: 张三先找房,但是对要找房的地点又不熟悉,那么张三可以"委托"中介帮忙找房
所以得出结论:------->

事件委托就是请其他人帮忙做我们想做的事
做完之后最终的结果还是会反馈到我们这里
js中事件委托的好处

①减少监听数量
添加到页面上的事件处理程序数量将直接关系到页面的整体运行性能,因为需要不断的与dom节点进行交互,访问dom的次数越多,引起浏览器重绘与重排的次数也就越多,就会延长整个页面的交互就绪时间
每个监听的函数都是一个对象,是对象就会占用内存,对象越多,内存占用率就越大,自然性能就越差
②新增元素自动有事件响应处理
默认情况下新增的元素无法响应新增前添加的事件
jQuery中如何添加事件委托
添加前