2010-12-04 38 views
0

J'ai un problème ici. Lorsque ma souris survole un div, un texte apparaît dans la div. Et quand il est à la sortie de la div, le texte disparaîtra. Mon problème est cependant quand la souris est au-dessus du texte apparu, il traitera que c'est le mouseout du div, faisant disparaître le texte. Comment puis-je faire pour éviter cela? Je veux que le texte reste aussi longtemps que la souris est dans la div, même si elle est au-dessus du texte. Merci ..hover div pour apparaître le texte dans le numéro de jquery

<div class="passd"></div> 

    $('.passd').live("mouseover", function(){ 
    if($(this).children('#passopt').length==0){ 
    $(this).append('<p id="passopt">appear text</p>'); 
    } 
}); 
$('.passd').live("mouseout", function(){ 
    $(this).children('#passopt').remove(); 
}); 
+0

je suis le problème, nous pouvons réaliser ce que vous voulez en utilisant une booléen vrai ou faux, mais que IsNot bonne approche, laissez-moi penser et revenir ... – kobe

Répondre

1

vous pouvez utiliser l'événement mouseleave à la place ...

http://api.jquery.com/mouseleave/

+0

+1 pour vous a donné la solution, mais vous auriez donné un code aussi, donc les gens l'aiment .. – kobe

+0

gotcha - merci pour le conseil - nouveau à ce conseil – momo

0

Découvrez http://flowplayer.org/tools/tooltip/index.html pour voir si elle peut faire ce que vous voulez ...

+0

le problème qu'il a est Le passage de souris sur le texte est considéré comme un "mouseout" de div, ce qui cache le texte, nous pouvons utiliser le plugin, mais nous devrions voir comment résoudre son problème. – kobe

+0

parfois la solution est d'utiliser un outil qui l'a déjà résolu. :) – DGM

2

Essayez cette :

$('.passd') 
    .live("mouseenter", function() { 
     $(this).append('<p id="passopt">appear text</p>'); 
    }) 
    .live("mouseleave", function() { 
     $(this).children('#passopt').remove(); 
    }); 

Testé, et fonctionne: http://jsfiddle.net/xLzdP/

+0

yep mouseenter et mouseleave est la solution pour cela ... – kobe

0

Vous pouvez obtenir tout autant à l'utilisation .hover():

$('.passd').hover(function() { 
     $(this).append('<p id="passopt">appear text</p>'); 
}, function(){ 
     $(this).children('#passopt').remove(); 
    });