2010-08-06 50 views
0

我不確定最佳方法是什麼。Javascript對象和jQuery

我有一個控件,我希望能夠打開並保留一些數據或在運行中更改它。

function TaskControl(params) { 
    this.params = params; 

    this.openTaskControl = function() { 
     alert("openTaskControl"); 
    } 

    $("#button").click(function() { 
     this.openTaskControl(); 
    }); 
} 

我遇到的問題是,試圖調用openTaskControl因爲this顯然指的是HTML元素,而不是TaskControl拋出一個錯誤。如何從點擊功能內部調用此功能?

回答

4
function TaskControl(params) { 
     this.params = params; 
     var that = this; 

     this.openTaskControl = function() { 
       alert("openTaskControl"); 
     } 

     $("#button").click(function() { 
       that.openTaskControl(); 
     }); 
} 
3

內部範圍將引用不同的this對象。使用變量來代替:

function TaskControl(params) { 
    var paramsSave = params; 

    var openTaskControl = function() { 
     alert("openTaskControl"); 
    } 

    $("#button").click(function() { 
     openTaskControl(); 
    }); 
}