jquery单击处理程序和Oriented对象编程

时间:2010-09-20 15:25:56

标签: javascript jquery

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

function MyClass(container)
{
   this.Container=container;
   this.PrepareHandlers = function()
    {

        $('#Div1').click(function() {
            alert(this.Container);
        });
    }; 
}

但是因为我进入处理程序,“this”是被点击的元素。是否可以从方法中声明的处理程序访问对象的属性?

3 个答案:

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