Javascript jquery点击处理程序与面向对象编程
我在一个类中有一个方法,在这个方法中,我在div元素中有一个click事件的处理程序:Javascript jquery点击处理程序与面向对象编程,javascript,jquery,Javascript,Jquery,我在一个类中有一个方法,在这个方法中,我在div元素中有一个click事件的处理程序: function MyClass(container) { this.Container=container; this.PrepareHandlers = function() { $('#Div1').click(function() { alert(this.Container); }); }; } 但是由于im进
function MyClass(container)
{
this.Container=container;
this.PrepareHandlers = function()
{
$('#Div1').click(function() {
alert(this.Container);
});
};
}
但是由于im进入了处理程序,“this”是单击的元素。是否可以从方法中声明的处理程序访问对象的属性?如果我错了,请更正。“this”应该指的是click中的函数() 您还可以尝试jQuery 1.4的代理方法:
function MyClass(container)
{
var self = this;
this.Container=container;
this.PrepareHandlers = function()
{
$('#Div1').click(function() {
alert(self.Container);
});
};
}
jQuery使用
Function.apply()
()在事件处理程序函数的上下文中更改this
的含义。在jQuery事件处理程序中,此
引用触发事件的DOM节点。
function MyClass(container)
{
this.Container=container;
this.PrepareHandlers = function()
{
$('#Div1').click(function() {
alert(jQuery.proxy(MyClass.Container, MyClass));
});
}
}