2

这是不是正确的做事方式。同样在这里我通过_thisthis传递上下文是否有更好的方法

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

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

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

2 回答 2

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);
于 2012-11-01T09:58:51.533 回答
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;
});
于 2012-11-01T09:57:45.987 回答