jQuery ul цель события - могу ли я найти li, который на самом деле является целью события? - PullRequest
1 голос
/ 12 апреля 2011
$("#slider ul").hover(function(){
  //do something
});

Есть ли способ выяснить, на каком дочернем элементе (li) действительно зависла эта функция?

Это длинная функция, которая изначально была написана как $("#slider ul li") и т.д., работал, но только когда полностью покинул ползунок ul область.Мне нужно, чтобы он работал при переходе от одного li непосредственно к соседнему li и т. Д.

Ответы [ 3 ]

4 голосов
/ 12 апреля 2011
$("#slider ul").hover(function(evt){ 
   var targetElement = evt.target;
   // do something
});

По сути, jQuery hover позволяет вам передать событие. Это событие содержит целевой элемент, который вызвал событие.

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

Другая альтернатива

Попробуйте:

$("#slider ul").delegate("li", "mouseover", function(e){   
    var el = e.target;
   //do something
}); 

Рабочий пример: http://jsfiddle.net/hpJJz/

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

Звучит так, будто вы пытаетесь сделать две разные вещи ... одну на ul наведении, а затем еще одну на li наведения

Вы, вероятно, должны разделить обработчики событий:

var slider = $('#slider ul');

slider.hover(function(){ /* do something*/ });
slider.find('li').hover(function(){ /* do something else with $(this) */ });
...