jQuery: changer div css de display:none à display:block ne fonctionne pas
Je suis l'évolution du contenu d'un div basé sur la case de valeur. la valeur de la div est simple texte pour tous, mais une case à cocher. Dans le cas d'exception, la valeur de la div est une autre div (disons childDiv).
Donc, je suis l'évolution de la visibilité de l'childDiv (display: none
par jQuery.css()
) lorsque l'une des deux autres options sont cliqués, et la modifier pour la display: block
lorsque l'exception de l'option est cliqué.
La childDiv devient caché quand je change de case à cocher. Cependant, il n'est pas l'arrière de l'écran à nouveau quand je veux qu'elle soit bien visible.
Le violon est ici: http://jsfiddle.net/sandeepy02/jLgyp/
Le code est
<div class="switch switch-three candy blue" id="reachout">
<input name="reachout" type="radio" id="tab-41" value="1" checked="checked"/>
<label for="tab-41">Experience</label>
<input name="reachout" type="radio" id="tab-42" value="2"/>
<label for="tab-42">Contact Us</label>
<input name="reachout" type="radio" id="tab-43" value="3"/>
<label for="tab-43">Why?</label>
<div id="test1234">
<div id="test12345">
Option Start
</div>
</div>
<span class="slide-button"></span>
</div>
et
jQuery("input[name='reachout']",jQuery('#reachout')).change(
function(e)
{
if(jQuery(this).val()=="1")
{
jQuery("#test1234").html("");
jQuery("#test12345").css("display","block");
}
if(jQuery(this).val()=="2")
{
jQuery("#test1234").html("Option 2");
jQuery("#test12345").css("display","none");
}
if(jQuery(this).val()=="3")
{
jQuery("#test1234").html("Option 3");
jQuery("#test12345").css("display","none");
}
});
J'ai même essayé de
jQuery("#test12345").css('position', 'absolute');
jQuery("#test12345").css('z-index', 3000);
après display: block
mais qui n'a pas fonctionné.
Grâce
Il a essayé . Ne marche pas encore.
Sur une note de côté, pour rendre votre code plus concis, vous pouvez essayer d'utiliser des cas/commutateur au lieu de plusieurs instructions if 😉
OriginalL'auteur user1517108 | 2013-04-03
Vous devez vous connecter pour publier un commentaire.
Vous d'écraser le div lorsque vous définissez est mère 's html, de sorte que vous essayez de montrer un div qui n'est pas là.
OriginalL'auteur Musa
Voir quel est votre problème:
Ce
jQuery("#test1234")
est le parent dejQuery("#test12345")
et ce que vous faites est écrasé dans le code html de avec ces lignes de code:Voir avant ce script d'exécution de la
HTML
était comme ça:Maintenant, quand vos scripts est exécuté alors qu'il ressemble à ceci:
par cette
jQuery("#test1234").html("");
sortie est identique:par cette
jQuery("#test1234").html("Option 2");
sortie est identique:et par ce
jQuery("#test1234").html("Option 2");
sortie est identique:De sorte que vous faites
display : block
un élément qui n'est pas présent dans les dom après l'exécution du script.OriginalL'auteur Jai
Juste un changement de jquery!!
OriginalL'auteur Sankalp Mishra
Basé sur le commentaire d'Andrew, j'ai décidé de mettre les divs séparé au lieu de parent-enfant.
Par la suite, il fonctionne très bien comme je le désir.
Le changement de code est:
et
OriginalL'auteur user1517108
Est votre Id correct ?
OriginalL'auteur John
Simplement l'utiliser comme ci-dessous
Ça marchera très bien.
OriginalL'auteur Hunter Zhao
J'ai reconfiguré votre code avec quelques suggestions, il devrait maintenant fonctionner.
http://jsfiddle.net/jquery4u/nPMvV/
OriginalL'auteur Sam Deering