问答详情
源自:5-3 卸载事件off()方法

为何点第二个button不会出发第一个div的off('mousedown')

两个都是绑定的button,点第一个可以触发第二个div的off()删除全部事件

那点第二个button为什么触发不了第一个的off("mousedown")呢

提问者:C0EEC3F7BBAA 2016-08-05 17:57

个回答

  • C0EEC3F7BBAA
    2016-08-26 17:51:37

    前两位朋友 ··· 你们和我看的代码不一样嘛··我的没动过的代码是这样的··只有一个script

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
        <title></title>
        <style>
        .left div,
        .right div {
            width: 100%;
            height: 50px;
            padding: 5px;
            margin: 5px;
            float: left;
            border: 1px solid #ccc;
        }
        
        .left div {
            background: #bbffaa;
        }
        
        .right div {
            background: yellow;
        }
        </style>
        <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>
    </head>
    
    <body>
        <h2>删除事件</h2>
    
    
        <h4>测试一</h4>
        <div class="left">
            on('mousedown mouseup')
            <div class="aaron">点击触发</div>
        </div>
        <button>点击删除mousedown事件</button>
        <script type="text/javascript">
        var n  = 0;
        //绑定事件
        $(".aaron:first").on('mousedown mouseup', function(e) {
            $(this).text( '触发类型:' +  (e.type) + ",次数" + n)
            ++n;
        })
    
        //删除事件
        $("button").click(function() {
            $(".aaron:first").off('mousedown')
        })
       
        </script>
    
    
    
        <h4>测试一</h4>
        <div class="left">
            on('mousedown mouseup')
            <div class="aaron">点击触发</div>
        </div>
        <button>点击销毁所有事件off</button>
        <script type="text/javascript">
        var n  = 0;
        //绑定事件
        $(".aaron:last").on('mousedown mouseup', function(e) {
            $(this).text( '触发类型:' +  (e.type) + ",次数" + n)
            ++n;
        })
    
        //删除事件
        $("button").click(function() {
            $(".aaron:last").off()
        })
       
        </script>
    </body>
    
    </html>


  • 交替的黑白键
    2016-08-24 19:43:01

    第一个script结构体加载的时候只有一个button,所以第一个script里面的事件绑定只给了第一个button;第二个script结构体加载的时候已经有了两个button,所以第二个script结构体里面的事件绑定给了两个button;因此第一个button绑定了两个click事件,第二个button只绑定了一个click事件;

  • happy_ye16
    2016-08-22 10:00:10

    因为这两个btn的事件放在2个script结构体里面,前面的对后面有影响,后面的对前面没有影响。

    我测试了一下,当把两段script代码放在一个结构体里面时,两个btn的随便点击哪一个,效果都是一样的,互相影响。

  • 铃铛3
    2016-08-11 15:06:31

    同问 是什么原理 顺序的问题吗

  • 宝宝周
    2016-08-05 18:10:38

    $("button").click(function() {

            $(".aaron:last").off()

        })

    //一共两个div,指定解绑**class为“aaron”的最后一个元素**的全部事件,不卸载第一个元素的事件