2009-09-11 8 views
10

Мне нужно установить фокус на элемент, который является ближайшим рядом (а в другом случае непосредственным пред) к текущему элементу.jQuery: получить следующий следующий элемент после текущего элемента

Например:

<li>item1</li> <- prev element (get this element) 
<li>item1</li><- current element 
<li>item1</li> <- next element (get this element) 
<li>item1</li> 

Это то, что я использовал

var curr = (event.target).next(); 
$(curr).trigger('focus'); 

когда я проверяю значение curr в поджигатель он показывает неопределенными по какой-то причине.

ответ

6

Вы находитесь в обработчике событий jquery? Если да, почему бы не использовать $(this).next() и/или $(this).prev()?

+0

а как насчет события пузыри? – geowa4

+0

Ярмарка вопрос. Это будет зависеть от исходного селектора, используемого для подключения события, которое отсутствовало в вопросе. Хороший ответ кстати, +1 от меня –

21

Использование

$(event.target).next() 

, чтобы получить следующий родственный. Вы также можете передать выражение функции next. Это позволит выбрать следующий родственный, чтобы соответствовать вам селектор:

$(event.target).next("p") 

Вы также можете использовать nextAll, который работает так же, но возвращает все следующие sublings. See more here. Также есть prev и prevAll, которые являются аналогами для получения предыдущего элемента (ов).

В принципе, вы были очень близки, вам просто нужно обернуть event.target в объект jQuery, так как event.target возвращает фактический элемент.

Смежные вопросы