J'essaye d'écrire une fonction JS (en utilisant un prototype dans des rails) qui montrera les divs cachés dans un li quand ce li est mouseover'ed. Chaque li a un identifiant unique qui est un nombre, comme suit:Javascript Hover Content Show
<li id="100">
<div style="display:none;" id="hover-display-content">Content</div>
<div style="display:none;" id="more-hover-display-content">Content</div>
<div style="display:none;" id="even-more-hover-display-content">Content</div>
</li>
Je ne suis pas sûr de savoir comment s'y prendre bien, surtout lorsque la JS ne montre que la elemenst cachée pour que li spécifique.
Je pense quelque chose comme:
Event.observe(window, 'load', function() {
Event.observe($("li"), 'mouseover', function() {
var id = readAttribute("id")
id.getElementById("hover-display-content").style.display = "inline";
id.getElementById("more-hover-display-content").style.display = "inline";
id.getElementById("even-hover-display-content").style.display = "inline";
});
Event.observe($("li"), 'mouseout', function() {
var id = readAttribute("id")
id.getElementById("hover-display-content").style.display = "none";
id.getElementById("more-hover-display-content").style.display = "none";
id.getElementById("even-hover-display-content").style.display = "none";
});
});
Mais il ne semble pas fonctionner. Où vais-je mal?
Edit:
J'utilise maintenant:
Event.observe(window, 'load', function() {
$$('li').invoke('observe', 'mouseover', function(event) {
this.children[0].toggle();
});
$$('li').invoke('observe', 'mouseout', function(event) {
document.children[0].toggle();
});
});
qui travaille en partie, mais mon code ressemble à ceci:
<ul>
<li>
<div style="display:hidden;">Hidden Div</div>
<div>More content that isn't hidden</div>
</li>
</ul>
Quand je Survoler les li il affiche le div caché, cependant si je retourne le second div il cache à nouveau le commentaire, même si ce div est dans le li. Pourquoi?
En fait, mon élément commence par un préfixe, je l'ai juste sorti par souci de brièveté. – goddamnyouryan
@Ryan: ce n'est pas une bonne chose à faire quand cela est important pour la façon dont vous choisissez et agissez sur les choses ... vous voudrez peut-être remettre le code à zéro, sans les choses qui sont confidentielles. – prodigitalson