Вопрос о кеше в javascript / jquery - PullRequest
0 голосов
/ 16 апреля 2011

Интересно, будет ли кэшироваться селектор "$ 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 ]

2 голосов
/ 16 апреля 2011

Если внутри вашего обработчика «load» вам нужно было выполнить много операций jQuery с «$ mySelector», тогда было бы неплохо сохранить его в переменной.Однако в вашем примере вы используете значение только один раз, так что оно действительно не имеет значения.

0 голосов
/ 16 апреля 2011

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?Где они будут хранить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...