我很努力地使用命名约定,我想为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