关于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回答

好帮手慕慕子

2020-04-24

同学你好,对于你的问题解答如下:

  1. selector相当于一个选择器,表示给指定元素的子元素绑定事件。

    如果on和off方法中,一个传递selector一个不传递,那么绑定和解绑事件的对象是不同的,所以无法实现实现效果。

  2. off形参中不传递函数,那就会移除指定元素指定事件类型上绑定的所有事件处理函数。 示例:

    给obj绑定两个事件函数,如下:

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

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

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

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

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

同学可以结合示例再测试理解下,祝学习愉快~

1

0 学习 · 14456 问题

查看课程