2011-08-19 3 views
0

je suit la structure html:Jquery vol stationnaire seulement au dernier élément

<div id="123" class="test"> 
    <div class="testMessage">Foo</div> 
    <div><div class="testDate">2010</div></div> 
    <div id="127" class="test"> 
     <div class="testMessage">Bar</div> 
     <div><div class="testDate">2011</div></div> 
    </div> 
</div> 

Et suivant le code JS:

$(".test").live({ 
    mouseenter: 
     function() 
     { 
      $(this).find(".testDate").show(); 
     }, 
    mouseleave: 
     function() 
     { 
      $(this).find(".testDate").hide(); 
     } 
}); 

Le problème est que lorsque le pointeur de la souris est à #127.testDate dans #123 également affiché . Je pense que c'est parce que hover fonctionne pour l'élément parent. Comment le réparer?

Merci!

+2

Vous ne savez pas si cela aide, mais les ID ne peuvent pas commencer par un chiffre. Il pourrait résorber certaines bizarreries du navigateur. – pimvdb

+0

Comment cela se rapporte-t-il à java ??? – RMT

+0

Donnez-moi une seconde et je vous écris un exemple pour vous –

Répondre

2
$(".test").live({ 
    mouseenter: function() { 
     $('.testDate:first', this).show(); 
    }, 
    mouseleave: function() { 
     $('.testDate:first', this).hide(); 
    } 
}); 
2

Je pense que c'est parce que vous avez un élément '.test' dans un autre '.test'. Si vous les divisez, votre code fonctionnera. Here est exemple de travail.

+1

Oui, je pense qu'il y a une balise de fermeture manquante qui est nécessaire. –

+1

Vous ne savez pas s'il est manquant ... Div # 123 enroule div # 127. Markup est très bien, je suppose. – sigurd

+1

Oui le balisage qu'il a fourni est bien mais parfois vous manquez ces petites choses et c'est peut-être que chaque test est une section dans le parent. –