課程
/前端開發
/jQuery
/jQuery基礎(三)—事件篇
請問測試三e.data,代表的是什么意思阿
有人可以介紹一下。數據代表什么嗎
2016-08-02
源自:jQuery基礎(三)—事件篇 2-2
正在回答
研究了一整個下午,基本上弄清楚了,我來解釋一下:
先來看完整代碼:
function?dome(e){ ????alert(e.data); } $("div").click(999,dome);
要搞懂e.data先要搞懂下面的問題:
.click(999,dome)做了什么事情?
.click(999,dome)調用的時候做了2件事:
第1:.click(999,dome),當.click()調用的時候,返回(即給函數dome添加)了一個事件對象e(即event),這個事件對象包含了一個對象data。這個事件對象e就是點擊鼠標這個事件,即click事件本身。
第2:.click(999,dome),將999這個參數傳遞給了事件e的對象data,這里一定要注意,999不是傳遞給了dome函數,而是傳遞給了dome函數的事件對象e的對象data(一定要注意理解這一句話)
看這個例子可能比較容易理解:
假設我們將999理解為傳遞給dome的參數,那么嘗試運行下面的代碼:
dome(999);
按錯誤的理解,將彈出窗口,輸出999;
而實際上輸出了 undefined,原因是當這樣寫的時候,實際上dome函數接收了一個無用的參數,而dome函數還在嘗試輸出e.data,而dome函數并沒有e這個對象,結果輸出undefined,就是說我們沒有定e這個對象。
但是當使用.click使用dome作為參數的時候,e對象出現了,說明e對象是被.click()添加的。
將上面的代碼改為這樣會比較容易理解:
$("div").click(999,function(e){ ????alert(e.data); }) //這里使用匿名函數代替dome函數
另外要說明的是:這里我一直稱呼data為對象,而不是數據的原因,data在這里是作為一個對象出現的
看這里的代碼:
var?userObj?=?{?name:"imooc",age:999};?//定義了一個對象userObj $("div").click(userObj,function(e){?//將對象userObj作為.click的參數 ????alert(e.data.name); })
將輸出:imooc
可以看到,之前的參數999,被替換成了userObj這個對象,那么在引用這個對象的時候,還是通過 data.name來調用的,說明:userObj對象被傳遞給了data
總結:
1.click(),在調用時,作為click參數的function被添加了 event事件對象,該對象擁有一個data對象;
2.click(),在調用是,如果設置參數,該參數將被傳遞給,event事件對象的data對象。
另外可以看我寫的手記,希望對你有幫助:jQuery事件參數傳遞的解讀
e.data就是傳過來的e的值。$("button:eq(2)").mousedown(1111, data)里面的mousedown事件調用data函數,并且將1111傳入data函數,用e來接收傳入的值。
獲取當前元素的數據吧
舉報
jQuery第三階段開啟事件修煉,掌握對頁面進行交互的操作
2 回答e.data問題
1 回答$(this).val(e.data) 這里的 e.data到底指的是什么
2 回答e.data是什么意思?
2 回答測試三種的funciton data(e){e.data} ,e是什么??
1 回答求解釋一下e.data是什么意思?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-10-21
研究了一整個下午,基本上弄清楚了,我來解釋一下:
先來看完整代碼:
要搞懂e.data先要搞懂下面的問題:
.click(999,dome)做了什么事情?
.click(999,dome)調用的時候做了2件事:
第1:.click(999,dome),當.click()調用的時候,返回(即給函數dome添加)了一個事件對象e(即event),這個事件對象包含了一個對象data。這個事件對象e就是點擊鼠標這個事件,即click事件本身。
第2:.click(999,dome),將999這個參數傳遞給了事件e的對象data,這里一定要注意,999不是傳遞給了dome函數,而是傳遞給了dome函數的事件對象e的對象data(一定要注意理解這一句話)
看這個例子可能比較容易理解:
假設我們將999理解為傳遞給dome的參數,那么嘗試運行下面的代碼:
按錯誤的理解,將彈出窗口,輸出999;
而實際上輸出了 undefined,原因是當這樣寫的時候,實際上dome函數接收了一個無用的參數,而dome函數還在嘗試輸出e.data,而dome函數并沒有e這個對象,結果輸出undefined,就是說我們沒有定e這個對象。
但是當使用.click使用dome作為參數的時候,e對象出現了,說明e對象是被.click()添加的。
將上面的代碼改為這樣會比較容易理解:
另外要說明的是:這里我一直稱呼data為對象,而不是數據的原因,data在這里是作為一個對象出現的
看這里的代碼:
將輸出:imooc
可以看到,之前的參數999,被替換成了userObj這個對象,那么在引用這個對象的時候,還是通過 data.name來調用的,說明:userObj對象被傳遞給了data
總結:
1.click(),在調用時,作為click參數的function被添加了 event事件對象,該對象擁有一個data對象;
2.click(),在調用是,如果設置參數,該參數將被傳遞給,event事件對象的data對象。
另外可以看我寫的手記,希望對你有幫助:jQuery事件參數傳遞的解讀
2016-08-04
e.data就是傳過來的e的值。$("button:eq(2)").mousedown(1111, data)里面的mousedown事件調用data函數,并且將1111傳入data函數,用e來接收傳入的值。
2016-08-02
獲取當前元素的數據吧