jQuery之绑定事件和解绑事件

JQuery绑定事件的方式

1.$(“选择器”).事件名称(事件处理函数)

例:$("#dv").click(function(){
			console.log("点击了");
			})

2.$(“选择器”).bind(“事件名称”,事件处理函数)

 例:$("#id").bind("click",function(){
 			console.log("点击了");
 			})
通过bind()函数也可以同时绑定多个事件,传的参数可以是一个对象
$("#dv").bind({"事件名称1":事件处理函数1,"事件名称2":事件处理函数2})

3.$(“选择器”).on(“事件名称”,事件处理函数)

例:$("#id").on("click",function(){
  		console.log("点击了");
  		})   

4.$(“父级选择器”).delegate(“子级选择器”,“事件名称”,事件处理函数)

例:$("#dv").delegate("p","click",function(){
		console.log("点击了");
		})

5.$(“父级选择器”).on(“事件名称”,“子级选择器”,事件处理函数)

	例:$("#dv").on("p","click",function(){
			console.log("点击了");
			})
前三种方式都是对象调用方法,给自己绑定事件。不能在元素动态添加时绑定。
后两种方式时父级元素调用方法,给子级元素绑定事件:这两种方式一模一样,delegate方法内部调用的也是on方法。
这种方式可以解决动态创建元素绑定时间的问题,先绑定事件,后创建元素也可以。
**推荐使用on方法给元素绑定事件**

JQuery解绑事件

用什么方式绑定事件,就用对应的方式解绑事件。
  1. bind方式的解绑事件:unbind()
$("选择器").unbind():如果没有参数,则表示解绑该元素绑定的所有事件。
$("选择器").unbind("事件名称"):解绑该元素绑定的某种事件。
$("选择器").unbind("事件名称","事件名称"):多个参数之间用逗号隔开,表示解绑多个事件。
**需要特别注意的是:$("选择器").事件名称()绑定事件的方式,也是通过unbind()这种方式解绑。**
  1. delegate方式的解绑事件:undelegate()
$("父级选择器").undelegate():不写参数,解绑该父级元素下子级元素所有的事件(父级元素的事件不改变)。
$("父级选择器").undelegate("子级选择器","事件名称"):解绑该父级元素下的该子级元素绑定的该事件,
多个事件之间用逗号隔开。
  1. on方式的解绑事件:off()
$("父级选择器").off():没有参数,则父级元素和子级元素的所有的事件全部解绑。
$("父级选择器").off("事件名称"):父级元素和子级元素绑定的该事件全部解绑。
$("父级选择器").off("事件名称","子级选择器"):父级元素下该子级元素绑定的该事件解绑。
$("父级选择器").off("","子级选择器"):子级元素绑定的所有事件全部解绑。
$("父级选择器").off("事件名称","**"):解绑所有子元素的该事件。

补充:在jQuery中解决事件冒泡的问题:只需要在事件处理函数里 return false就可以了,没有兼容性问题。

猜你喜欢

转载自blog.csdn.net/qq_37237747/article/details/89680386