我在类中有一个方法,在这个方法中我有一个div元素中的click事件的处理程序:
function MyClass(container)
{
this.Container=container;
this.PrepareHandlers = function()
{
$('#Div1').click(function() {
alert(this.Container);
});
};
}
但是因为我进入处理程序,“this”是被点击的元素。是否可以从方法中声明的处理程序访问对象的属性?
答案 0 :(得分:4)
function MyClass(container)
{
var self = this;
this.Container=container;
this.PrepareHandlers = function()
{
$('#Div1').click(function() {
alert(self.Container);
});
};
}
答案 1 :(得分:0)
如果我错了,请纠正我。 “this”应该在click中引用函数(){..}?
答案 2 :(得分:0)
您也可以尝试使用jQuery 1.4的代理方法:http://api.jquery.com/jQuery.proxy/
function MyClass(container)
{
this.Container=container;
this.PrepareHandlers = function()
{
$('#Div1').click(function() {
alert(jQuery.proxy(MyClass.Container, MyClass));
});
}
}