这段代码看不懂了

来源:6-3 事件绑定与取消-off

AXLL

2019-08-01 14:41:12

版本jq3.41

// 上面有一个button元素
$(document).ready(function () {
var button = $('button');
button.on('click',
function (e) {
$().off(e) //为啥这样可以取消绑定?
console.log(1); //仅打印一次
}
)
});


写回答

4回答

好帮手慕码

2019-08-02

同学你好!

抱歉之前回答的是有一些问题的,被$()带偏了。

(1)$()代表的是整个jquery库,但是并不能让off事件生效,而是后面的参数e使off生效了。

http://img.mukewang.com/climg/5d43cf3f0001446607180199.jpg

如果把e删掉,即可打印很多次

http://img.mukewang.com/climg/5d43cfec0001655f01110048.jpg

(2)后面同学的demo也是这样:

http://img.mukewang.com/climg/5d43d05300010db602920058.jpg

http://img.mukewang.com/climg/5d43d04e0001b33f01430056.jpg

如果帮助到了你 欢迎采纳 祝学习愉快~

0

好帮手慕码

2019-08-02

同学你好!

不是的,只是在当前button绑定的点击事件里解绑click:(可以将它想成:如果不传任何元素,那么就指绑定本元素)

http://img.mukewang.com/climg/5d4399170001573604990349.jpg

下一个点击事件还是可以生效

http://img.mukewang.com/climg/5d4399330001ee2d02770128.jpg

如果帮助到了你 欢迎采纳 祝学习愉快~

0
hXLL
h 我改了一下demo: // 假设上方有一个button 有一个p // 仍然可以解绑。。。 $(document).ready(function () { var button = $('button'); button.on('click', function (e) { $('p').off(e) //为啥这样可以取消绑定? console.log(1); //仅打印一次 } ) });
h019-08-02
共1条回复

好帮手慕码

2019-08-01

同学你好!

没有仿照的例子,它选中的是整个jquery。$()就是jQuery(),这句话通俗理解就是:你把解绑事件off绑定在整个jQuery中啦,解绑之后jQuery里面的所有封装的都不能使用了,因此只能打印一次,也实现了解绑的效果。

这种写法并不常见,所以同学了解下即可。在使用off事件的时候前面建议写明要解绑的元素

如果帮助到了你 欢迎采纳 祝学习愉快~

0
hXLL
h 你的意思是所有的click事件都解绑了吗?是这个意思吗
h019-08-01
共1条回复

好帮手慕码

2019-08-01

同学你好!
是这样的,jquery是由javascript开发的一个框架,并不是一种独立的语言,这种框架其实就是javascript的一个函数,函数名就为jquery,由于在框架中把jquery简写成了一个简单的$符号所以这个函数的使用格式就变成了$(),或者是$

这里的$()就表示jquery函数,相当于在此函数中解除绑定on("click")方法,那么on方法也不存在了,所以console.log只能打印一次。

如果帮助到了你 欢迎采纳 祝学习愉快~

0
hXLL
h 能不能写一个仿例 确实没看懂
h019-08-01
共2条回复

0 学习 · 14456 问题

查看课程