2010-11-26 7 views
0

Ich habe ein Beispiel für das Problem hier erstellt:jQuery leben() schweben, merkwürdiges Verhalten mit Show/Hide div

http://jsfiddle.net/jXLSW/

Beachten Sie, dass, wenn Sie das Bild schweben über ein div auf der zeigt nach oben Oberseite des Bildes. Wenn Sie das Bild verlassen, geht es weg. Das Problem ist, wenn Sie Ihre Maus über das div an der Spitze bewegen. Es geht in diesen Ein-/Ausblend-Zyklus, weil die Maus ein-/ausgeht.

Dieses div, das oben angezeigt wird, enthält Symbole, die als Symbolleiste fungieren. Wie kann ich die Symbolleiste sichtbar halten, wenn ich den Mauszeiger darüber bewege? Noch wichtiger: Wie kann ich erreichen, dass das Hover-Ereignis aufhört zu radeln?

UPDATE: Die interessante Sache ist der folgende Code funktioniert wie gewünscht. Das Problem ist, dass es in dieser Zeit scheinbar Live-Probleme gibt, es tritt jedoch nicht wirklich ein. Daher taucht kein div auf, was ebenfalls ein großes Problem darstellt.

$('.has-menu').livequery(function() { 
    $(this).hover(function() {$(this).find('div.img-menu').slideToggle();}, function() {$(this).find('div.img-menu').slideToggle();}); 
}); 

Antwort

1

Nun, änderte ich den Code dazu:

$('.has-menu').live('hover', function(e) { 
    if (e.type == 'mouseover') { 
     $(this).find('div.img-menu').slideToggle(); 
    }else{ 
     $(this).find('div.img-menu').slideToggle(); 
    } 
}); 

und jetzt ist alles gut.