JQuery фильтр () обход не работает? - PullRequest
1 голос
/ 29 мая 2010

Я не знаю, в чем проблема с этим?

$('.post').live('mouseenter mouseleave', function() {  
         $(this).filter('anything here,a,div,.class,#id').toggleClass('hidden');
    });

где это работает нормально.

$('.post').live('mouseenter mouseleave', function() {  
         $(this).toggleClass('hidden');
    });

Есть привязка, которую я хотел бы показать при наведении мыши. Аналогично Facebook

1 Ответ

3 голосов
/ 29 мая 2010

$(this) относится к вашему .post элементу.

.filter() удаляет все, что не соответствует селектору.

Итак, в данном примере, если элемент .post не является одним из следующих

'anything here,a,div,.class,#id'

оно отфильтровывается.

.filter() не пересекает. Он принимает набор jQuery и сокращает его до элементов, соответствующих заданному селектору.

http://api.jquery.com/filter/


EDIT:

В jQuery есть много способов пройти.

http://api.jquery.com/category/traversing/

Чтобы получить все элементы a, которые являются потомками элемента .post, получившего событие, вы можете сделать:

$(this).find('a');

Какой метод обхода будет зависеть от вашей ситуации.

...