gpt4 book ai didi

jQuery 中的 Javascript 'this' 指针

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:51:58 26 4
gpt4 key购买 nike

我创建了一个对象obj:

function a(id, ...){
this.id = id;
......
}

var obj = new a("#somediv", ...);

我有这个功能:

a.prototype.b = function(){
$(this.id+" span").mouseover(function(){
$(this.id).addClass("c");
});

};

很明显,mouseover函数中的this指向的是span,而不是obj……

我知道我可以通过创建一个变量并获取 this.id 的属性来解决这个问题,但是

有没有办法让mouseover函数中的this指向obj

最佳答案

在较新的浏览器中使用纯 JavaScript,您可以绑定(bind)函数:

a.prototype.b = function(){
$(this.id+" span").mouseover(function(){
$(this.id).addClass("c");
}.bind(this));
};

使用 jQuery,您可以获得更好的浏览器支持:

a.prototype.b = function(){
$(this.id+" span").mouseover($.proxy(function(){
$(this.id).addClass("c");
}, this));
};

关于jQuery 中的 Javascript 'this' 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11380270/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com