它是 How to access the correct `this` context inside a callback? 的重复项,但是根据我的问题描述,我在这里找不到它。很多人可能都有同样的问题。
我有一个像这样的对象:
var my_object = new function() {
this.function2 = function() {
$("#button").click(function() {
this.function1()
})
};
this.function1 = function() {
};
}
a = my_object()
如果我点击#button,就会发生这种情况
this.function1 is not a function
如何正确解决这个问题?如何防止jquery覆盖我的“this”?
最佳答案
存储对 this
的引用以避免混淆和上下文问题。
在事件处理程序中this
是完全不同的东西..它是一个dom节点
var my_object = new function() {
var self = this; // reference to `my_object`
self.function2 = function() {
$("#button").click(function() {
// "this" is dom element returned by jQuery event handler
// but "self" is already a stored reference to `my_object`
self.function1()
$(this).css('color','red')
})
};
self.function1 = function() {
};
}
关于javascript - Jquery覆盖我的对象中的 "this",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35209499/