JQuery селектор, который отфильтровывает анимированных детей - PullRequest
0 голосов
/ 01 октября 2009

Я пытаюсь использовать селектор jQuery для выбора элемента, только если его дочерние элементы не анимированы.

Я пытался:

var articalLink =  $(".navArticals").filter($(this).children("ul:not(':animated')"));

Это не работает

Оказалось, что только это работает

var articalLink =  $(".navArticals").filter(function() {
   var filtered = $(this).children().not(":animated");
   return filtered
 });

Есть ли способ выбрать без функции внутри .filter ()?

Ответы [ 2 ]

3 голосов
/ 01 октября 2009

Я не думаю, что в этом случае вам нужно применить фильтр на основе дочерних элементов каждого элемента в упакованном наборе. Вы можете немного сократить фильтр до

// you don't necessarily need to assign to a variable,
// just depends what you want to do with it
var articalLink = $(".navArticals").filter(function() {
   return $(this).children().not(":animated");
});

функция фильтра - это предикат (выражение, которое оценивается как true или false), чтобы отфильтровать те элементы в упакованном наборе, чьи дочерние объекты анимированы.

3 голосов
/ 01 октября 2009

$(".navArticals").filter(":not(:has(:animated))")

или

$(".navArticals:not(:has(:animated))")

filter требует строку или функцию, а не объект jQuery. Но вы можете просто отсеять элементы с помощью исходного селектора.

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