2010-08-06 3 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(); 
    }); 
} 
Смежные вопросы