C0EEC3F7BBAA
2016-08-05 17:57
两个都是绑定的button,点第一个可以触发第二个div的off()删除全部事件
那点第二个button为什么触发不了第一个的off("mousedown")呢
前两位朋友 ··· 你们和我看的代码不一样嘛··我的没动过的代码是这样的··只有一个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>
第一个script结构体加载的时候只有一个button,所以第一个script里面的事件绑定只给了第一个button;第二个script结构体加载的时候已经有了两个button,所以第二个script结构体里面的事件绑定给了两个button;因此第一个button绑定了两个click事件,第二个button只绑定了一个click事件;
因为这两个btn的事件放在2个script结构体里面,前面的对后面有影响,后面的对前面没有影响。
我测试了一下,当把两段script代码放在一个结构体里面时,两个btn的随便点击哪一个,效果都是一样的,互相影响。
同问 是什么原理 顺序的问题吗
$("button").click(function() {
$(".aaron:last").off()
})
//一共两个div,指定解绑**class为“aaron”的最后一个元素**的全部事件,不卸载第一个元素的事件
jQuery基础(三)—事件篇
89997 学习 · 625 问题
相似问题