关于javascript / jquery中缓存的问题

时间:2011-04-16 13:35:52

标签: javascript jquery function caching

我想知道下面的示例中是否会在页面加载时缓存选择器“$ cacheA”吗?

// MY JQUERY FUNCTION/PLUGIN
(function( $ ){
$.fn.myFunction = function() {

var $cacheA = this,
$cacheB = $cacheA.children(),
$cacheC = $cacheB.eq(0);
$cacheD = $cacheA.parent();    

$cacheD.click(function(){

$cacheA.toggle();
$cacheB.fadeIn();
$cacheC.slideUp();

});

};
})( jQuery );
// END JQUERY FUNCTION/PLUGIN



$(window).load(function(){

$('#mySelector').myFunction();

});

是否有任何理由这样做:

$(window).load(function(){

var $mySelector = $('#mySelector');

$mySelector.myFunction();

});

2 个答案:

答案 0 :(得分:2)

如果在“load”处理程序中,你要使用“$ mySelector”执行许多jQuery操作,那么将其保存在变量中将是一个好主意。但是,在您的示例中,您只使用一次值,因此它实际上没有任何区别。

答案 1 :(得分:0)

Firstable,$ cacheA和其他内部点击功能将是未定义的。

$cacheD.click(function(){

$cacheA.toggle();
$cacheB.fadeIn();
$cacheC.slideUp();

});

其次,

$.fn.myFunction = function() {

var $cacheA = this,
$cacheB = $cacheA.children(),
$cacheC = $cacheB.eq(0);
$cacheD = $cacheA.parent();
}

那么,在$('selector').myFunction()之后如何使用$ cacheB,$ cacheC和$ cacheD?它们将存放在哪里?