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

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

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

und ich möchte eine Art Hörer (wie Mouseover oder mouseout) für jedes dieser div hinzuzufügen, indem die Klasse, die teamScroll als Referenz.JQuery - Fügen Sie eine Maus-Ereignis-Listener zu einer Klasse

Ich weiß, es ist Delegierten Methode, aber es funktioniert nur mit jquery-1.4.2 Version (die, wie die Zeit vor geschrieben für eine andere problem) mit IE6 einige Funktionen brach.

Es gibt einen anderen Weg, dies zu tun, ohne N Listener für N div?

Prost

Antwort

5

Sie können einen normalen .hover() Handler wie folgt verwenden:

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

das ist der Weg, der immer funktioniert (aber tut 2n Handler wie Sie sind gefragt), unter der Annahme, 1.4.2 eine Option ist nicht ... wenn Sie sich auf mindestens 1.3.2 sind, gibt es .live() wie folgt aus:

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

Der Unterschied hier ist, dass 01.230.läuft ein extra Selektor und das Ereignis sprudelt den ganzen Weg bis zu document ... sowie es tatsächlich Karten zu mouseover und mouseout unter der Decke, die oft unerwünscht ist.

Stattdessen würde ich vorschlagen, die .delegate() Route, und zu sehen, wenn jQuery 1.4.4 behebt das Problem, das Sie in 1.4.2 haben, gab es mehrere AJAX Tweaks in 1.4.3/1.4.4.

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

}); 
+0

Nick Antwort ist besser :) –

1

Versuchen

$('.teamScroll').bind('onmouseover', function() { 
    alert('Mouseover'); 
}); 
Verwandte Themen