Récemment, ce film doit être conçu pour fournir une fonction à cocher qui est sélectionnée.
Oh, n'est-ce pas une chose très simple? Une case générale, n multiples sous-crayons. Une fois la case générale sélectionnée, toutes les sous-cochets sont sélectionnés. Une fois que la case générale n'est pas sélectionnée, les sous-cochets ne sont pas sélectionnés.
Après avoir reçu cette petite demande, j'étais secrètement satisfait. Quelle fonction simple, ok, cela sera fait en deux minutes ~~~
Le temps passé par minute par minute, et les chevaux sur la prairie se précipitant dans mon cœur ont progressivement augmenté de tout le temps à des dizaines de millions ~~~
Que se passe-t-il avec ça?
alert ($ ("# checkbox_all"). attr ("vérifié"));
Toujours indéfini?
Nani? ? ?
Pourquoi cela se produit-il? ? Êtes-vous stupide dans le navigateur? Ensuite, changez de manière décisive les navigateurs pour tester, de Chrome à IE, de IE à Firefox. C'est le résultat -_- ||
Se pourrait-il que JQuery ait apporté des améliorations? ? ? ?
Après avoir vérifié avec le télescope Hubble et le microscope électronique laser HD, nous avons finalement trouvé l'indice. . . .
Il s'avère que cela a été modifié dans JQuery Version 1.6:
[L'attribut vérifié a été initialisé lorsque la page est initialisée et ne changera pas avec le changement d'état.
C'est-à-dire que si la boîte à cocher est sélectionnée après le chargement de la page, celle retournée sera toujours cochée (je ne l'ai pas sélectionnée au début)
S'il n'est pas sélectionné au début, celui retourné ne sera toujours pas défini! 】
Étant donné que jQuery a apporté des modifications à cela, il doit y avoir une meilleure solution correspondante:
.prop () est l'arme pour résoudre ce problème!
L'utilisation spécifique est la suivante:
alert ($ ("# checkbox_all"). prop ("vérifié"));
Il deviendra vrai ou faux pour le moment ~~
Ainsi, le code de ce flux a été changé pour ce qui suit:
#check_all est la case à cocher totale sélectionnée tous, et #check_children est la case à cocher enfant
La copie de code est la suivante:
$ ("# check_all"). Change (function () {
$ ('. check_children'). Prop ("vérifié", ce.checked);
});
ou:
La copie de code est la suivante:
$ ("# check_all"). Change (function () {
var is_checked = $ (this) .prop ("vérifié");
$ ('. check_children'). Prop ("vérifié", is_checked);
});
Cependant, j'aime toujours utiliser la première méthode. Moins le code, mieux c'est à écrire moins, à faire plus!
Il est très pratique de résoudre le problème du choix de tout ~~~