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 关注
- 1230 浏览
添加回答
举报