課程
/前端開發
/jQuery
/jQuery基礎(三)—事件篇
兩個都是綁定的button,點第一個可以觸發第二個div的off()刪除全部事件
那點第二個button為什么觸發不了第一個的off("mousedown")呢
2016-08-05
源自:jQuery基礎(三)—事件篇 5-3
正在回答
前兩位朋友 ··· 你們和我看的代碼不一樣嘛··我的沒動過的代碼是這樣的··只有一個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>
C0EEC3F7BBAA 提問者
第一個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第三階段開啟事件修煉,掌握對頁面進行交互的操作
2 回答改了val()的參數,為什么點擊第一個按鈕,參數不顯示,點第二個顯示
1 回答為什么第一個this是元素對象,第二個this是點擊事件?
1 回答下面第二個函數怎么實現調用第一個函數的?
1 回答第一個測試為什么會觸發了三次,求解
2 回答為何不直接使用mousedown()
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-08-26
前兩位朋友 ··· 你們和我看的代碼不一樣嘛··我的沒動過的代碼是這樣的··只有一個script
2016-08-24
第一個script結構體加載的時候只有一個button,所以第一個script里面的事件綁定只給了第一個button;第二個script結構體加載的時候已經有了兩個button,所以第二個script結構體里面的事件綁定給了兩個button;因此第一個button綁定了兩個click事件,第二個button只綁定了一個click事件;
2016-08-22
因為這兩個btn的事件放在2個script結構體里面,前面的對后面有影響,后面的對前面沒有影響。
我測試了一下,當把兩段script代碼放在一個結構體里面時,兩個btn的隨便點擊哪一個,效果都是一樣的,互相影響。
2016-08-11
同問 是什么原理 順序的問題嗎
2016-08-05
$("button").click(function() {
? ? ? ? $(".aaron:last").off()
? ? })
//一共兩個div,指定解綁**class為“aaron”的最后一個元素**的全部事件,不卸載第一個元素的事件