2 回答

TA貢獻1900條經驗 獲得超5個贊
這個和jquery無關吧 = =
首先看一下js的事件綁定:
注:下面代碼中,console.log($(this))
使用的是 jquery 的語法
document.getElementById('box').addEventListener('click',function(){
console.log(this);
console.log($(this));
});
document.getElementById('box').addEventListener('click',clickHandle);
function clickHandle(){
console.log(this);
console.log($(this));
}
結果很明顯,原生js的事件監聽中,在事件處理函數里面你輸出 this 就是監聽事件的dom。
jquery無論是 live on bind 本質上還是事件監聽,包括click() 因此使用$(this)
輸出jquery的dom對象很正常。無非你又使用$(this)
把dom對象封又裝了一次成jquery DOM對象。

TA貢獻1827條經驗 獲得超4個贊
首先要理解的是js中函數的this是指向調用這個函數的對象,在jq里面,在一個對象上調用一個方法并引入一個匿名函數作為參數時,jq會將函數中的this指向到其觸發的原生節點對象上,這里就比如#box
節點。
然后$()
是jq將原生節點對象包裝為jq對象,使其能夠使用各類的jq方法。
- 2 回答
- 0 關注
- 1259 瀏覽
添加回答
舉報