关于off的参数问题
来源:6-3 事件绑定与取消-off
功不唐捐终入海
2020-04-24 17:38:52
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>事件解绑off</title>
<script type="text/javascript"src="../jquery/jquery.js"></script>
</head>
<body>
<button class="obj">点击无效果</button>
<button class="one">绑定</button>
<button class="two">解绑</button>
<div style="display:none;">我被发现了!!!</div>
<script>
$(document).ready(function(){
function flase(){
$('div').show().fadeOut('slow')
}
$('.one').click(function(){
// $(document).on('click','.obj',flase).find('.obj').text('点击有效果!');
$('.obj').on('click',flase).text('点击有效果!');
})
$('.two').click(function(){
// $(document).off('click','.obj').find('.obj').text('点击无效果');
$('.obj').off('click').text('点击无效果');
})
})
</script>
</body>
</html>
1.当on和off同时使用,或者同时不使用 selector形参 时发现能完成效果, 并且在off里面不添加函数也能有效果。但是当on off一个使用了形参selector一个没有就不行了。这是怎么回事?
2.如果off中形参不传入函数会怎么样?
1回答
同学你好,对于你的问题解答如下:
selector相当于一个选择器,表示给指定元素的子元素绑定事件。
如果on和off方法中,一个传递selector一个不传递,那么绑定和解绑事件的对象是不同的,所以无法实现实现效果。
off形参中不传递函数,那就会移除指定元素指定事件类型上绑定的所有事件处理函数。 示例:
给obj绑定两个事件函数,如下:

off方法如果不传递函数名,默认会将obj绑定的两个点击事件函数都解绑了。如下所示写法,点击绑定后解绑,再点击obj按钮时,div不会显示出来,字体颜色也不会发生改变。

off方法如果传递函数名,只会解绑对应的事件,如下写法,先添加绑定事件,在解绑后,点击obj按钮,只有字体颜色发生改变,div不会显示了。

同学可以结合示例再测试理解下,祝学习愉快~
相似问题
回答 1
回答 1