Как использовать jQuery.end ()? - PullRequest
       17

Как использовать jQuery.end ()?

1 голос
/ 13 ноября 2011

Из того, что я прочитал в документации, end () вернет исходный объект. В моем случае это должно вернуть $(this), верно?

$('.el').delegate('a.off', 'click', function(){
  $(this).parents('div').find('a').removeClass('active').end().addClass('active');
  ...
});

но это не похоже на работу. Я не получаю addClass('active'), примененный к исходному элементу (ссылка a.off).

Ответы [ 2 ]

4 голосов
/ 13 ноября 2011

Не начальный объект, ранее выбранные элементы, которые в этом случае будут .parents('div'). Думайте об этом как о стеке, и каждый раз, когда вы меняете выбор элементов, они добавляются в стек, а .end() удаляет последнюю запись в стеке. Вам нужно было бы позвонить .end() дважды.

Но вместо этого вы также можете изменить порядок вызовов методов и использовать not для фильтрации определенного элемента:

$(this)
  .addClass('active')
  .parents('div')
  .find('a').not(this)
  .removeClass('active');
1 голос
/ 13 ноября 2011

Ваше понимание верно, но я не уверен, что происходит с вашим кодом, я сделал этот пример, и он работает:

http://jsfiddle.net/UKwzw/

Неважно.Я пропустил часть "removeClass".

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