jQuery - .not () не работает - PullRequest
       6

jQuery - .not () не работает

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

Вот мой код:

$("a").not(".current_page_item").hover(
   function(){
      $(this).stop().animate(
          {color: "#ffffff"}, 'slow'
      );
   },
   function(){
      $(this).stop().animate(
         {color: "#666666"}, 'slow'
      );
   }
);

Если я специально прошу CSS изменить класс, например:

$(".current_page_item").css("color", "#ff00ff");

Я могу изменить его цвет, так что я знаю, что этоне вина с моей стороны.

Есть идеи?

1 Ответ

5 голосов
/ 10 апреля 2011

На основании разметки на демонстрационной странице необходимо выполнить:

$("a").not(".current_page_item > a").hover(...)

или, альтернативно:

var selected = $('.current_page_item > a')[0];
$("a").not(selected).hover(...);

(может бытьбыстрее)

или просто:

$("li").not(".current_page_item").hover(...)

(если он также меняет цвет ссылок, не уверен насчет этого (ссылки особенные;)))

current_page_item - это класс родительского элемента li, а не сама ссылка.

Ваш код фильтрует только ссылки (a элементы), которые имеют класс current_page_item, но ни один из них не имеет, поэтому он выбирает все ссылки.

...