Добавление этого к переменной в jQuery - PullRequest
0 голосов
/ 15 марта 2012

Я хочу использовать переменную для кэширования нескольких селекторов в моем коде jQuery.

Кажется, я немного ударился о кирпичную стену, поскольку не уверен, как правильно добавить ключевое слово this в мою переменную. Например, у меня есть переменная, определенная следующим образом:

(function($){ var dropNav = $('nav ul li, span.arrow'); var dropDownNav = $('div.dropDownNav,div.dropDownNavTwo,div.dropDownNavThree,div.dropDownNavFour,u‌​l.dropNav').hide(); dropNav.hover(function(){ $('div.dropDownNav,div.dropDownNavTwo,div.dropDownNavThree,div.dropDownNavFour,‌​ul.dropNav',this).show(); },function(){ $('div.dropDownNav,div.dropDownNavTwo,div.dropDownNavThree,div.dropDownNavFou‌​r,ul.dropNav',this).hide(); return false }); })(jQuery);

Поскольку я буду использовать это для отображения и скрытия элементов навигации, я хочу использовать переменную dropDownNav с ключевым словом this для нацеливания на отдельные элементы навигации.

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 15 марта 2012

Я думаю, это то, что вы ищете ... вместо того, что у вас есть, сделать это:

var dropDownNav = $('div.dropDownNav,div.dropDownNavTwo,ul.dropNav'); //hide these in the css

dropDownNav.hover(
function(){ //onhover
$(this).show();
},
function(){ //mouse moves off
$(this).hide();
});
0 голосов
/ 15 марта 2012

Вы можете назначить коллекцию jQuery переменной и использовать ее в качестве cache.for Пример:

var dropDownNav = $('div.dropDownNav,div.dropDownNavTwo,ul.dropNav');
dropDownNav.hide();
dropDownNav.show();

вы можете использовать кэшированную переменную для присоединения обработчиков событий.

dropDownNav.click(function(){
  //here this refers to the clicked element
  $(this).hide();
});
...