首页 web前端 js教程 jQuery.off() 函数使用详解

jQuery.off() 函数使用详解

Jun 30, 2017 pm 01:38 PM
函数 详解

off()函数用于移除元素上绑定的一个或多个事件的事件处理函数。

off()函数主要用于解除由on()函数绑定的事件处理函数。

该函数属于jQuery对象(实例)。

语法

jQuery 1.7 新增该函数。其主要有以下两种形式的用法:

用法一:

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()函数将会移除当前匹配元素上为后代元素selector绑定的events事件的事件处理函数handler。

如果省略参数selector,则移除为任何元素绑定的事件处理函数。

参数selector必须与通过on()函数添加绑定时传入的选择器一致。

如果省略参数handler,则移除指定元素指定事件类型上绑定的所有事件处理函数。

如果省略了所有参数,则表示移除当前元素上为任何元素绑定的任何事件类型的任何事件处理函数。

返回值

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

实际上,off()函数的参数全是筛选条件,只有匹配所有参数条件的事件处理函数才会被移除。参数越多,限定条件就越多,被移除的范围就越小。

示例&说明

请参考下面这段初始HTML代码:

<input id="btn1" type="button" value="点击1" />

<input id="btn2" type="button" value="点击2" />

<a id="a1" href="#">CodePlayer</a>

首先,我们为上述button和<a>元素绑定事件,然后使用off()函数解除事件绑定,相应的代码如下:

function btnClick1(){
    alert( this.value + &quot;-1&quot; );
}
function btnClick2(){
    alert( this.value + &quot;-2&quot; );
}
var $body = $(&quot;body&quot;);
// 为所有button元素的click事件绑定事件处理函数btnClick1
$body.on(&quot;click&quot;, &quot;:button&quot;, btnClick1 );
// 为所有button元素的click事件绑定事件处理函数btnClick2
$body.on(&quot;click&quot;, &quot;:button&quot;, btnClick2 );
//为所有a元素绑定click、mouseover、mouseleave事件
$body.on(&quot;click mouseover mouseleave&quot;, &quot;a&quot;, function(event){
    if( event.type == &quot;click&quot; ){
        alert(&quot;点击事件&quot;);
    }else if( event.type == &quot;mouseover&quot; ){
        $(this).css(&quot;color&quot;, &quot;red&quot;);
    }else{
        $(this).css(&quot;color&quot;, &quot;blue&quot;);       
    }
});
// 移除body元素为所有button元素的click事件绑定的事件处理函数btnClick2
// 点击按钮,btnClick1照样执行
$body.off(&quot;click&quot;, &quot;:button&quot;, btnClick2);
// 移除body元素为所有button元素的click事件绑定的所有事件处理函数(btnClick1和btnClick2)
// 点击按钮,不会执行任何事件处理函数
// $body.off(&quot;click&quot;, &quot;:button&quot;);
// 注意: $body.off(&quot;click&quot;, &quot;#btn1&quot;); 无法移除btn1的点击事件,off()函数指定的选择器必须与on()函数传入的选择器一致。
// 移除body元素为所有元素(包括button和&lt;a&gt;元素)的click事件绑定的所有处理函数
// 点击按钮或链接,都不会触发执行任何事件处理函数
// $(&quot;body&quot;).off(&quot;click&quot;);
// 移除body元素为所有元素的任何事件绑定的所有处理函数
// 点击按钮,或点击链接或者鼠标移入/移出链接,都不会触发执行任何事件处理函数
// $(&quot;body&quot;).off( );
登录后复制

此外off()函数还可以只移除指定命名空间的事件绑定。

var $btn1 = $(&quot;#btn1&quot;);
$btn1.on(&quot;click.foo.bar&quot;, function(event){
    alert(&quot;click-1&quot;);
});
$btn1.on(&quot;click.test&quot;, function(event){
    alert(&quot;click-2&quot;);
});
$btn1.on(&quot;click.test.foo&quot;, function(event){
    alert(&quot;click-3&quot;);
});
$btn1.off(&quot;click.test&quot;); // 移除click-2、click-3
// $btn1.off(&quot;click.foo&quot;);  // 移除click-1、click-3
// $btn1.off(&quot;click.foo.bar&quot;);  // 移除click-1
// $btn1.off(&quot;click&quot;);  // 移除所有click事件处理函数(click-1、click-2、click-3)
// $btn1.off(&quot;.foo&quot;);  // 移除所有包含命名空间foo的事件处理函数,不仅仅是click事件
登录后复制

以上是jQuery.off() 函数使用详解的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

golang函数动态创建新函数的技巧 golang函数动态创建新函数的技巧 Apr 25, 2024 pm 02:39 PM

golang函数动态创建新函数的技巧

C++ 函数命名中参数顺序的考虑 C++ 函数命名中参数顺序的考虑 Apr 24, 2024 pm 04:21 PM

C++ 函数命名中参数顺序的考虑

如何在Java中写出高效和可维护的函数? 如何在Java中写出高效和可维护的函数? Apr 24, 2024 am 11:33 AM

如何在Java中写出高效和可维护的函数?

C++ 函数默认参数与可变参数的优缺点比较 C++ 函数默认参数与可变参数的优缺点比较 Apr 21, 2024 am 10:21 AM

C++ 函数默认参数与可变参数的优缺点比较

excel函数公式大全 excel函数公式大全 May 07, 2024 pm 12:04 PM

excel函数公式大全

C++ 函数返回引用类型有什么好处? C++ 函数返回引用类型有什么好处? Apr 20, 2024 pm 09:12 PM

C++ 函数返回引用类型有什么好处?

C++ 函数异常进阶:定制错误处理 C++ 函数异常进阶:定制错误处理 May 01, 2024 pm 06:39 PM

C++ 函数异常进阶:定制错误处理

C++ 函数中引用参数和指针参数的高级用法 C++ 函数中引用参数和指针参数的高级用法 Apr 21, 2024 am 09:39 AM

C++ 函数中引用参数和指针参数的高级用法

See all articles