si la case à cocher est cochée display div

J’essaie de construire quelque chose comme les options wordpress pour basculer la visibilité des champs lors de la création et de l’article. Ce que je construis repose sur la fonction $.click qui bascule le parent avec le nom de champ correspondant et je me demandais quel serait le meilleur moyen de le faire si la case à cocher est cochée car mon code va gâcher si vous cochez une case et rechargez la page parce que c’est un clic et non si la case est cochée. Merci d’avance!

http://jsfiddle.net/zgrRd/1/

HTML

  Title  

jQuery

 $('input[type="checkbox"]').click(function(){ var item = $(this).attr('name'); $('input[name="'+item+'"][type="text"]').parent().toggle(); }); 

En supposant que vous contrôliez en externe l’état coché de vos cases à cocher …

Démo: http://jsfiddle.net/zgrRd/5/

En d’autres termes, quel que soit l’état des cases à cocher, il sera évalué lors du chargement de la page. Ainsi, si une case n’est pas cochée, l’élément correspondant sera masqué. Donc, si vous définissez une valeur côté serveur qui coche la case, ce JavaScript côté client doit l’évaluer correctement.

JavaScript

 function evaluate(){ var item = $(this); var relatedItem = $("#" + item.attr("data-related-item")).parent(); if(item.is(":checked")){ relatedItem.fadeIn(); }else{ relatedItem.fadeOut(); } } $('input[type="checkbox"]').click(evaluate).each(evaluate); 

HTML

  Title  
Title

Notez mon utilisation des atsortingbuts data-* . Cela évite d’utiliser l’atsortingbut name d’un champ pour indiquer une relation avec un autre champ. Vous pouvez légalement nommer ces atsortingbuts comme vous le souhaitez, à condition qu’ils soient précédés de data- .

Je pense que ceci, Jquery UI Save State Using Cookie , est la partie manquante que vous recherchez pour contrôler l’état entre les rechargements?

HTML

  
Some text here

css

 #block{display:none;background:#eef;padding:10px;text-align:center;} 

javascript / jquery

 $('#cbxShowHide').click(function(){ this.checked?$('#block').show(1000):$('#block').hide(1000); //time for show });