如何为jQuery回调绑定“this”?

时间:2009-08-07 06:27:27

标签: jquery ajax

我试图在jQuery中设置一个回调,正确地将“this”绑定到调用对象。具体来说,这是我正在使用的代码。我正在这样的对象中进行ajax调用:

Object.prototype.doAjaxCall = function(url)
    {
        $.get(url, null, this.handleAjaxResponse );
    }

但是,在Object.prototype.doAjaxCall中,this并未引用正确的内容。我之前使用过Prototype,我知道你需要在执行Ajax调用时绑定它,但我似乎无法在jQuery中找到正确的方法。有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:2)

使用jQuery ajax context属性绑定此属性。例如:

$.ajax({
    context: this,
    url: url,
    type: 'GET'
}).done( function(data, textStatus, jqXHR) {
    this.handleAjaxResponse();
});

答案 1 :(得分:1)

更强大的本机绑定功能应该是ECMAScript 3.1的一部分。在此期间......

Object.prototype.doAjaxCall = function(url) {
    var bind = function(context, method) {
        return function() {
            return method.apply(context, arguments);
        };
    };

    $.get(url, null, bind(this, this.handleAjaxResponse));
};