2010-12-13 3 views
3
<div class="teamMain"> 
    <div class="teamScroll"> 
     PRIMO 
    </div> 

    <div class="teamScroll"> 
     SECONDO 
    </div> 

    <div class="teamScroll"> 
     TERZO 
    </div> 
</div> 

И я хотел бы добавить свой род слушатель (например MouseOut или курсор, находящимся) для каждого из этого DIV, принимая класс teamScroll в качестве ссылки.JQuery - Добавление слушателя мыши события к классу

Я знаю, что есть делегат метод, но он работает только с Jquery-1.4.2 версии (которая, как писал недавно еще problem) сломал некоторые функции с IE6.

Есть ли другой способ сделать это без добавления слушателя N для N div?

Приветствия

ответ

5

Вы можете использовать обычный .hover() обработчик, например:

$(".teamScroll").hover(function() { 
    //mouse on the item 
}, function() { 
    //mouse off the item 
}); 

Это путь, который всегда работает (но делает 2n обработчики, как вы спрашиваете о), предполагая, что 1.4.2 это не вариант ... если вы по крайней мере 1.3.2, есть .live() так:

$(".teamScroll").live("mouseenter", function() { 
    //mouse on the item 
}).live("mouseleave", function() { 
    //mouse off the item 
}); 

разница здесь в том, что .live() запускает дополнительный селектор и пузырьки событий вплоть до document ... а также его фактически соответствует mouseover и mouseout под обложками, что часто нежелательно.

Вместо этого я предлагаю маршрут .delegate() и, если jQuery 1.4.4 исправляет проблему, имеющуюся в 1.4.2, в 1.4.3/1.4.4 было несколько настроек AJAX.

0
$('.teamScroll').mouseover(function(){ 

}); 
+0

ответ Ник лучше :) –

1

Попробуйте

$('.teamScroll').bind('onmouseover', function() { 
    alert('Mouseover'); 
}); 
Смежные вопросы