2012-01-02 43 views

回答

5

聲明包含可變外this

var self = this; 
this.background.click(function() { 
    self.terminate(); 
}); 
+0

我讀錯= P + 1專打我吧 – 2012-01-02 16:54:27

2

嘗試:

this.background.click($.proxy(this.terminate, this)); 
0

可以使像@Andrew所述,或可以使 「yourObject.terminate();」

例:

var yourObject = { 
    background: $("#background"), 
    terminate: function() 
    { 
     alert("do something..."); 
    }, 
    addEvents: function() 
    { 
     this.background.click(function() 
     { 
      yourObject.terminate(); 
     }); 
    } 
}; 


$(function() 
{ 
    yourObject.addEvents(); 
}); 

用於提高,保證了 '背景' 選擇存在(如HTML前的JavaScript load),並使用jQuery 「活()」 或 「委託()」 或「上() 「在元素中附加事件。

0

使用綁定

$(".detailsbox").click(function(evt){ 
    test.bind($(this))(); 
    }); 
    function test() 
    { 
    var $this = $(this); 
    }