Ответ @ Khnle близок, но при таком подходе вам нужна анонимная функция для использования ссылки self
:
function Foo(a) {
this.a = a;
var self = this;
$("#test").append($("<button></button>").html("click").click(function () {
self.bar(); // correct `this` value inside `bar`
}));
}
Вы также можете использовать метод $.proxy
, чтобы сохранить контекст объекта:
function Foo(a) {
this.a = a
$("#test").append($("<button></button>")
.html("click")
.click($.proxy(this.bar, this)));
}
Проверьте приведенный выше пример здесь .