在jQuery中,有简单事件、bind绑定事件、delegate委托绑定事件、on事件绑定几种事件绑定方式。
一、事件的绑定
1、简单事件
如点击事件,可以通过click(handler)进行绑定,但是这种方式不能同时注册多个事件。
$(selector).click(function(){});
2、bind绑定事件
可以同时为多个事件绑定同一个事件处理函数,如下形式:
$(selector).bind("click mouseenter", function(){});
3、delegate委托事件
主要是通过为父元素注册事件,利用事件冒泡原理,事件会由父元素的子元素执行。
// 参数selector1:最终执行函数的对象的父元素;
// 参数selector2:最终执行函数的对象;
// 参数click: 代表绑定的是什么事件
// 参数function:代表处理函数
$(selector1).delegate(selector2, "click", function(){});
4、on注册事件
on注册事件语法:
on注册事件的参数说明:
第一个参数events:绑定事件的名称,可以是由空格分隔的多个事件(标准事件或自定义事件)
第二个参数selector1:执行事件的后代元素(可选),如果没有后代元素,则事件由自己执行
第三个参数data:传递给处理函数的数据,事件触发时通过event.data使用
第四个参数handler:事件处理函数
$(selector).on(events[,selector][,data],handler)
1、注册简单事件
// 给$(selector)绑定事件,并由自己触发,不支持动态绑定
$(selector).on("click", function(){});
2、注册委托事件
// 给$(selector)绑定代理事件,当必须是它内部的元素selector1才能触发事件,支持动态绑定
$(selector).on("click", "selector1", function(){});
二、事件的解绑
1、bind与unbind
// 解绑所有事件
$(selector).unbind()
// 解绑click事件
$(selector).unbind("click")
2、delegate与undelegate
// 解绑所有事件
$(selector).undelegate()
// 解绑click事件
$(selector).undelegate("click")
3、on与off
// 推荐
// 解绑所有事件
$(selector).off()
// 解绑click事件
$(selector).off("click")
三、事件的触发
$(selector).click()
$(selector).trigger("click")