Pourquoi ce n'est pas ma case changement événement déclenché?
J'ai deux fonctions.
La première fonction se traduit par une div cliquez dans une cochée/décochée bascule.
La deuxième fonction se traduit par une case à cocher changer en cacher/afficher l'événement.
Le problème est que lorsque j'utilise la fonction première de cocher/décocher la case, la deuxième fonction n'est pas appelée. Je suis nouveau sur le javascript, merci.
<script type="text/javascript">
$(document).ready(function() {
$(":checkbox").parent().click(function(evt) {
if (evt.target.type !== 'checkbox') {
var $checkbox = $(":checkbox", this);
$checkbox.attr('checked', !$checkbox.attr('checked'));
evt.stopPropagation();
return false;
}
});
});
</script>
<script type="text/javascript">
$(document).ready(function() {
$(":checkbox").change(function() {
if($(this).attr("checked")) {
$('.'+this.id).show();
}
else {
$('.'+this.id).hide();
}
});
});
</script>
Vous devez vous connecter pour publier un commentaire.
La changement événement ne se déclenche pas lorsque vous modifier par programmation la valeur d'une case à cocher. Ce que vous pouvez faire pour s'assurer qu'il tire est:
$.fn.prop
vs$.fn.attr
. Attr attribuera ainsi que de récupérer. Prop récupère simplement.Ne vous embêtez pas avec le premier extrait. Juste l'utilisation d'éléments de l'ÉTIQUETTE:
Maintenant, lorsque l'utilisateur clique sur l'étiquette (le texte en regard de la case à cocher), la case à cocher est activée.
Le deuxième extrait de code peut être optimisé:
vous utilisez
'.'
qui est pour les sélecteurs de classe au lieu d'utiliser'#'
puisque vous êtes à l'aide de l'IDENTIFIANT de l'élément. Comme ceci:<div>
avec une classe correspondant à l'id de la case.