2012-11-01 30 views
2

這是做事的正確方式。另外我在這裏通過繞過this方面_this在那裏做在jquery中傳遞「this」上下文

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

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

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

你不一定需要'_this = jQuery(this);'直接將它作爲參數傳遞。 –

+0

僅供參考,'.live()'不推薦使用,您應該使用'.on()'。 – Barmar

回答

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); 
+0

謝謝,可以var $ el = $(this);在構造函數中聲明 – aWebDeveloper

+0

你在構造函數中的含義是什麼? –

+0

做類有構造函數.....我可以在那裏寫$ el代碼 – aWebDeveloper

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; 
}); 
相關問題