亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于e.data

請問測試三e.data,代表的是什么意思阿


有人可以介紹一下。數據代表什么嗎


正在回答

3 回答

研究了一整個下午,基本上弄清楚了,我來解釋一下:

先來看完整代碼:

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事件參數傳遞的解讀

4 回復 有任何疑惑可以回復我~

e.data就是傳過來的e的值。$("button:eq(2)").mousedown(1111, data)里面的mousedown事件調用data函數,并且將1111傳入data函數,用e來接收傳入的值。

1 回復 有任何疑惑可以回復我~

獲取當前元素的數據吧

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于e.data

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號