Javascript jquery点击处理程序与面向对象编程

Javascript jquery点击处理程序与面向对象编程,javascript,jquery,Javascript,Jquery,我在一个类中有一个方法,在这个方法中,我在div元素中有一个click事件的处理程序: function MyClass(container) { this.Container=container; this.PrepareHandlers = function() { $('#Div1').click(function() { alert(this.Container); }); }; } 但是由于im进

我在一个类中有一个方法,在这个方法中,我在div元素中有一个click事件的处理程序:

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));
      });
    }
}