我很努力地使用命名約定,我想爲DOM元素的緩存變量提供一個約定。使用jQuery來緩存DOM元素
到目前爲止,我已經進步到使用此:
window.x = $('#x');
現在當然,這使它成爲全球範圍內,但根據我的習慣,這是確定。
但問題是,看着window.x並沒有告訴我,它是$('#x')的緩存變量。所以現在我想嘗試的是使用jQuery插件技術來存儲這些值。喜歡的東西:
;(function($, window, undefined) {
$.fn.x = function() {
return $('#x');
}
})(jQuery, window);
這樣的話,我可以參考$ x.val(),它會立即傳達給我,$ x是$( '#X')DOM元素的緩存。
問:我將如何創建一個名爲x的插件,它是$('#x')選擇器的返回值? 我在做對吧?現在,你可能會說(在你最好的辦公場所的聲音)「這是一個可怕的想法」,但我只是在試驗。
哦,我不知道這是否是一個可怕的主意。但是我有一個更簡單的方法 - 我只在一個正常變量的開頭放置了一個美元符號(我也使用$作爲jQuery的別名):'$ this = $(this)'或'$ widget = $('#widget')' – 2013-03-21 19:12:59
將您的變量範圍侷限於您的函數,請勿將它們保留在全局範圍內。如果它們是jQuery集合,則用'$'作爲變量名稱的前綴。這整個緩存廢話**是一個可怕的想法。緩存用於提高性能,但由於JavaScript是異步運行的,99%的時間性能不是問題,因爲您會花費太多時間閒置。 – zzzzBov 2013-03-21 19:14:26