Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Prezados, bom dia;
Tenho varias ComboBox, cada uma com um ID diferente:
id="TurmaPresencaEntidade210"
id="TurmaPresencaEntidade180"
id="TurmaPresencaEntidade30"
id="TurmaPresencaEntidade15"
As combos são montados pelo .load(), ou seja pra rodar o onchange tenho que usar o .live
Então fiz assim:
jQuery('#TurmaPresencaEntidade210').live('change', function () {
});
Pra primeira combo funciona, pois o nome to usando ali no .live()
Mas eu tenho várias... vou ter que criar .live() fixo um pra cada DIV ?
O problema é que essas combos são dinâmicas, pode ter uma ou várias.
Como fazer ?
William Não tem outra maneira ?
Eu uso a mesma classe pra todas as combos do sistema. Inclusive pra outras funcionalidades como cidades e estados. Ou seja, não tem haver com a chamada.
Eu teria que criar classes pra cada operação.
Imagina o tamanho do CSS
você sabe uma outra maneira de fazer isso ?
Você não pode criar uma classe do tipo: js-turma para usar somente nos combos dessa chamada ?
Note que você não deve usar essa class no css. Apenas no js.
Existe ainda uma outra possibilidade, que seria o seletor atributo.
Selecionando todos os IDs:
id="TurmaPresencaEntidade[0-9]+"
Mas não acho essa uma forma "bonita". Por isso te sugiro criar uma classe apenas para as chamadas, e usar elas apenas para o js.
Sim, sim... quando me referi que o CSS vai ficar grande é que terei que criar várias classes pois tenho muitas combos no meu sistema.
Daí imagina só o tanto de classes no CSS
Pensei em pegar pelo pedaço do nome do ID... $("input[name^='TurmaPresencaEntidade]");
Pra usar pra combobox daí não é input ne ??? Conforme medelinho acima.
O que você acha ?
Sim, essa é a segunda opção que eu dei. Mas não acho ela legal.
Prefiro fazer com classes. Não vai alterar absolutamente nada no css.
Apenas vai adicionar mais um seletor no elemento no html.
<select class="estilo-combo js-turma">
e pronto. Não há nada demais nisso.Daí fica assim ?
ComboBoxs:
<select name="TurmaPresencaEntidade210" id="TurmaPresencaEntidade210" class="camposelect js-turma" style="width:120px">[OptionsTurmas]</select>
<select name="TurmaPresencaEntidade180" id="TurmaPresencaEntidade180" class="camposelect js-turma" style="width:120px">[OptionsTurmas]</select>
<select name="TurmaPresencaEntidade30" id="TurmaPresencaEntidade30" class="camposelect js-turma" style="width:120px">[OptionsTurmas]</select>
<select name="TurmaPresencaEntidade15" id="TurmaPresencaEntidade15" class="camposelect js-turma" style="width:120px">[OptionsTurmas]</select>
O jQuery:
jQuery('.camposelect js-turma').live('change', function () {
window.alert('rodou...');
});
Estou tentando aqui... valeu
Ok... deu certo...
jQuery('.js-turma').live('change', function () {
window.alert('rodou...');
});
faça por classes.
jQuery('.turma').live('change', function () {