Jquery之on()绑定事件和off()解除绑定事件

一.前言

  on()和off()都是Jquery1.7新增的函数。

  on()函数用于为指定元素的一个或多个事件绑定处理函数。off()函数用于移除元素上绑定的一个或多个事件的处理函数,这里主要用于处理使用on()函数绑定的事件。

二.on()

//用法一
jQueryObject.on(events[, selector][, data], handler)
//用法二
jQueryObject.on(eventsMap[, selector][, data])

//---参数说明
//events
String类型一个或多个用空格分隔的事件类型和可选的命名空间,例如"click""focus click""keydown.myPlugin"//eventsMap
Object类型一个Object对象,其每个属性对应事件类型和可选的命名空间(参数events) ,属性值对应绑定的事件处理函数(参数handler) 。
//selector
可选 / String类型一个jQuery选择器,用于指定哪些后代元素可以触发绑定的事件。如果该参数为null或被省略,则表示当前元素自身绑定事件(实际触发者也可能是后代元素,只要事件流能到达当前元素即可) 。
//data
可选 / 任意类型触发事件时,需要通过event.data传递给事件处理函数的任意数据。
//handler
Function类型指定的事件处理函数。

//返回值
on()函数的返回值为jQuery类型,返回当前jQuery对象本身。

三.off()

//用法一
jQueryObject.off([events[, selector][, handler]])
//用法二
jQueryObject.off(eventsMap[, selector])

//---参数说明
//events
可选 / String类型一个或多个用空格分隔的事件类型和可选的命名空间,例如"click""focus click""keydown.myPlugin"//eventsMap
Object类型一个Object对象,其每个属性对应事件类型和可选的命名空间(参数events) ,属性值对应绑定的事件处理函数(参数handler) 。
//selector
可选 / String类型一个jQuery选择器,用于指定哪些后代元素可以触发绑定的事件。如果该参数为null或被省略,则表示当前元素自身绑定事件(实际触发者也可能是后代元素,只要事件流能到达当前元素即可) 。
//handler
可选 / Function类型指定的事件处理函数。

//返回值
off()函数的返回值为jQuery类型,返回当前jQuery对象本身。

四.例子

<div id="all">
    <input id="btn1" type="button" value="点击1" />
    <input id="btn2" type="button" value="点击2" />
</div>

// 给按钮1绑定点击
//方式1
$("#all").on("click", "#btn1", btnClick1);
////方式2
//$("#btn1").on("click", btnClick1);

// 给按钮2绑定点击
//方式1
$("#all").on("click", "#btn2", btnClick2);
////方式2
//$("#btn2").on("click", btnClick2);

function btnClick1() {
    alert("111");
    //解除绑定
    $("#all").off("click", "#btn1");
    //$("#btn1").off("click");
}

function btnClick2() {
    alert("222");
}

  绑定了按钮的点击事件。按钮1在点击后解除了绑定事件,再次点击后,事件就不生效。

 

posted @ 2022-07-13 15:25  shine声  阅读(1242)  评论(0编辑  收藏  举报