Recentemente, este filme precisa ser projetado para fornecer uma função de caixa de seleção selecionada.
Oh, isso não é uma coisa muito simples? Uma caixa de seleção geral, n múltipla sub-checkboxes. Depois que a caixa de seleção geral é selecionada, todos os sub-cheques são selecionados. Depois que a caixa de seleção geral não é selecionada, os sub-checkboxes não são selecionados.
Depois de receber esse pequeno pedido, fiquei secretamente feliz. Que função simples, ok, será feito em dois minutos ~~~
O tempo passou por minuto por minuto, e os cavalos na pradaria correndo no meu coração gradualmente aumentaram de tempo todo para dezenas de milhões ~~~
O que está acontecendo com isso?
alerta ($ ("#caixa de seleção_all"). att ("verificado"));
Sempre indefinido?
Nani? ? ?
Por que isso está acontecendo? ? Você é estúpido no navegador? Em seguida, mude decisivamente os navegadores para testar, do Chrome para o IE, do IE para o Firefox. Este é o resultado -_- ||
Será que o jQuery fez melhorias? ? ? ?
Depois de verificar com o telescópio Hubble e o microscópio eletrônico a laser HD, finalmente encontramos a pista. . . .
Acontece que isso foi modificado no jQuery versão 1.6:
[O atributo verificado foi inicializado quando a página for inicializada e não mudará com a mudança de estado.
Ou seja, se a caixa de seleção for selecionada após a carga da página, o retorno sempre será verificado (eu não a selecionei desde o início)
Se não for selecionado no início, o retorno sempre será indefinido! 】
Como o jQuery fez alterações nisso, deve haver uma solução melhor correspondente:
.Prop () é a arma para resolver esse problema!
O uso específico é o seguinte:
alerta ($ ("#caixa de seleção"). Prop ("verificado"));
Isso se tornará verdadeiro ou falso neste momento ~~
Então, o código deste fluxo foi alterado para o seguinte:
#check_all é a caixa de seleção total selecionada tudo, e #check_children é a caixa de seleção infantil
A cópia do código é a seguinte:
$ ("#check_all"). alterar (function () {
$ ('. check_children'). prop ("verificado", this.ccecked);
});
ou:
A cópia do código é a seguinte:
$ ("#check_all"). alterar (function () {
var is_checked = $ (this) .prop ("verificado");
$ ('. check_children'). prop ("verificado", is_checked);
});
No entanto, ainda gosto muito de usar o primeiro método. Quanto menos código, melhor ~~ escreva menos, faça mais!
É muito conveniente resolver o problema de escolher tudo ~~~