No código a seguir, configurei um manipulador de alterações em uma caixa de seleção para mostrar e ocultar algumas perguntas de acompanhamento com base no valor da seleção.
Além disso, para alguns valores da seleção, é exibida uma mensagem extra.
Para verificar se preciso ocultar a mensagem extra, mantenho uma variável chamada Anterior. Na execução do manipulador, verifico se Previous é nulo ou se o tamanho é 0.
Seria bom inicializar o Previous para um objeto JQuery vazio para não precisar fazer a verificação extra para nulo.
Fazer um $ () retorna um objeto com o tamanho de 1.
Existe uma maneira de criar um objeto Jquery vazio?
// Função inicial. $ (function () { // Segure o objeto selecionado anteriormente para a seleção do tipo de conta. var Anterior = nulo; // Aqui é onde eu gostaria de inicializar. // algo como Previous = $ (); $ ("SELECT [name = 'AccountType']"). Change ( function () { // Ocultar mensagem anterior se houver uma. if (Previous == null || Previous.size ()> 0) { Previous.hide (); } // Mostra a mensagem se encontrada e salve-a como anterior. Anterior = $ ("#" + this.value + "_ Msg"). Show (); // Obter a primeira pergunta var FirstQuestion = $ (". FirstQuestion"); if (this.value === '') { FirstQuestion.hide (); }outro{ // Mostra manualmente a FirstQuestion. FirstQuestion.show (); } }); }
No pior dos casos, eu poderia fazer algo assim:
var Anterior = {size: function () {return 0; }};
mas isso parece exagero.
Fonte: api.jquery.com
fonte
Meu conselho é não fazer dessa maneira. Existem maneiras muito mais fáceis de fazer isso. Considerar:
Muito mais fácil Basicamente, forneça classes para indicar o que mostrar e ocultar e, em seguida, não há rastreamento necessário. Uma alternativa é:
fonte
tente isso
Eu não sou um bom programador, mas lhe dá um objeto vazio :))
fonte