Javascript Jquery覆盖我的";这";在我的目标中
它是的副本,但根据我的问题描述,我无法在此处找到它。很多人可能有同样的问题 我有一个物体像:Javascript Jquery覆盖我的";这";在我的目标中,javascript,jquery,Javascript,Jquery,它是的副本,但根据我的问题描述,我无法在此处找到它。很多人可能有同样的问题 我有一个物体像: var my_object = new function() { this.function2 = function() { $("#button").click(function() { this.function1() }) }; this.function1 = function() { }; } a =
var my_object = new function() {
this.function2 = function() {
$("#button").click(function() {
this.function1()
})
};
this.function1 = function() {
};
}
a = my_object()
如果我点击#按钮,就会发生这种情况
此.function1不是一个函数
如何正确解决这个问题??如何防止jquery覆盖我的“this”?当您在jquery中绑定事件处理程序时,回调中的this引用了触发事件的元素 要在函数中设置
this
的值,请调用函数上的bind
,传递希望成为this
的对象:
var my_object = new function() {
this.function2 = function() {
$("#button").click(function() {
this.function1()
}.bind(this)
});
this.function1 = function() {
};
}
在jQuery中绑定事件处理程序时,回调中的
这个引用了触发事件的元素
要在函数中设置this
的值,请调用函数上的bind
,传递希望成为this
的对象:
var my_object = new function() {
this.function2 = function() {
$("#button").click(function() {
this.function1()
}.bind(this)
});
this.function1 = function() {
};
}
存储对该
的引用,以避免混淆和上下文问题
在事件处理程序中,这是完全不同的。。它是一个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() {
};
}
存储对该
的引用,以避免混淆和上下文问题
在事件处理程序中,这是完全不同的。。它是一个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() {
};
}