在jquery中传递“this”上下文

时间:2012-11-01 09:52:03

标签: javascript jquery

这是正确的做事方式吗?在这里我通过 _this 传递this背景是否有更好的方法

var messages = {
    getLoadMore : function(_this){
        ...............
    },

    getSwappingData : function(_this){
        .................
    },
}

jQuery('.js-message-swap').live('click', function(){
    _this = jQuery(this);
    messages.getSwappingData(_this);
    return false;
});

2 个答案:

答案 0 :(得分:1)

你所拥有的将会很好。较短的版本是将函数的引用传递给click处理程序,然后将this应用于外部函数。试试这个:

var messages = {
    getLoadMore : function() {
        var $el = $(this);
        return false;
    },

    getSwappingData : function() {
        var $el = $(this);
        return false;
    }
}

jQuery('.js-message-swap').live('click', messages.getSwappingData);

答案 1 :(得分:0)

唯一的另一种方法是将它作为参数传递给函数而不是变量。

var messages = {
    getLoadMore : function(_this){
        ...............
    },

    getSwappingData : function(_this){
        .................
    },
}

jQuery('.js-message-swap').live('click', function(){
    // Remove this _this = jQuery(this);
    messages.getSwappingData(jQuery(this));
    return false;
});