2012-04-09 18 views
0

muss ich Tooltip mouseout von Link verstecken, aber nicht, wenn Mouseover auf Tooltip (beide unterschiedliche Eltern haben) Zum Beispiel: wir es auf Facebook sehen können, wenn schweben auf Freunde Namen oder AvatareWie Mouseover auf zwei Elemente überprüfen?

Ich versuche, diese aber jedes Mal, Ich bekomme FALSCH

$('a').bind('mouseleave', function() { 
     var i = $('div.tooltip').is('hover'); 
     if(i===true){ 
     console.log('cursor over the tooltip, so dont hide'); 
     } 
     else{ 
     console.log('hide tooltip'); 
     } 
}); 

Wie kann ich beide Bedingungen überprüfen?

+1

Sie müssen ': Hover' Selektor anstelle von 'Hover' (mit Semikolon) verwenden. kann auch versuchen, event.relativeTarget -Eigenschaft von Event-Objekt zu verwenden – user907860

+0

Bitte überprüfen Sie diese, http://jqapi.com/#p=hover – Dhiraj

Antwort

1

Setzen Sie sowohl den Link und die Werkzeugspitze in der gleichen parent:

<div id="parent"> 
    <a href="link.com">link</a> 
    <div id="tooltip">tooltip</div> 
</div> 

Und dann im Skript können Sie einfach die mouseleave-Funktion auf der übergeordneten setzen:

$("#parent a").mouseenter(function(){ 
    $("#tooltip").css("display","block"); //or however you handle this 
}); 
$("#parent").mouseleave(function(){ 
    $("#tooltip").css("display","none"); 
}); 
+0

wäre es zu einfach) Ich kann es einfach nicht. Ich habe zu viele Links und nur ein div für Tooltip, wo ich verschiedene Daten für alle Links laden. – Zhivago

+0

ist das div immer gleich groß? Wie handelst du den Tooltip sichtbar/unsichtbar? –

+0

Wenn Sie das nicht ändern können, würde ich empfehlen, die Antwort von adeneo unten zu lesen –

1

Wenn Sie können Ändern Sie Ihr Markup nicht, verwenden Sie ein zeitgesteuertes Ereignis und brechen Sie es ab, wenn Sie mit der Maus eines der beiden Elemente eingeben:

Here's a FIDDLE

Verwandte Themen