2 回答

TA貢獻(xiàn)1900條經(jīng)驗 獲得超5個贊
這個和jquery無關(guān)吧 = =
首先看一下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));
}
結(jié)果很明顯,原生js的事件監(jiān)聽中,在事件處理函數(shù)里面你輸出 this 就是監(jiān)聽事件的dom。
jquery無論是 live on bind 本質(zhì)上還是事件監(jiān)聽,包括click() 因此使用$(this)
輸出jquery的dom對象很正常。無非你又使用$(this)
把dom對象封又裝了一次成jquery DOM對象。

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