JQuery Dynamic Binding não funcionando, ou seja, 7 ou 8
-
05-07-2019 - |
Pergunta
Estou trabalhando em uma lista suspensa de seleção. Esta lista adiciona todos os elementos selecionados (feitos por um usuário) a um contêiner <div> na forma de campos ocultos. Essas seleções têm um link que oferece ao usuário a opção de removê -lo do contêiner de seleção. Toda vez que uma nova seleção é feita, o código liga automaticamente uma função que está mudando de remoção da seleção no caso em que o usuário clica no link reemve, algo assim:
<Div id = "SelectedCategories">
Categoria #1 Remove_link
<input type = "hidden" value = "9524" name = "recordids [] /> </div>
<select>
<pution> categoria #2 </pption>
<pution> categoria #3 </pption>
</leclect>
Toda vez que uma nova seleção é feita da lista suspensa, todos os elementos selecionados anteriormente precisam ser "re-bucais" com a função Excluir. Por algum motivo, é necessário fazer isso, porque todos os elementos parecem perder seu anterior ligação quando um novo é adicionado.
Isso funciona muito bem no Fire Fox e Safari, mas eles não funcionam para o IE. Mesmo que eu seja uma vez que eu faz uma ligação para cada elemento selecionado, todas as ligações são perdidas e a única que funciona é o último elemento que eu adicionei e bico de acordo com a função de exclusão.
Minha pergunta é: Existe um WorkArround para isso, ou como faço para resolver esse problema? Infelizmente, o IE é o navegador da Internet mais usado por aí :(
obrigada
Solução 3
Eu usei a função ao vivo sem sorte, talvez esteja fazendo algo errado. O que funcionou para mim foi desbloquear a função antes de adicionar ou reembolsar qualquer outra função.
Portanto, se eu vincular uma função ao evento de clique como este.
$('#deleteRecord1').bind('click',function()
{
// function here ...
}
);
$ ('#DELETERECORD2'). bind ('click', function () {// function aqui ...});
Mais tarde, quando excluo o registro1, preciso reboque esse método para o registro2, farei dessa maneira para fazê -lo funcionar no IE 7 e 8
$('#deleteRecordId').unbind('click');
$('#deleteRecordId').bind('click',function()
{
// function here ...
}
);
Nesse caso, o "ID" refere -se a um ID exclusivo que todo que foi selecionado, neste exemplo corresponde ao número 2.
Outras dicas
Tem certeza de que está usando a versão correta do jQuery para usar a função ao vivo? É relativamente novo, então você precisa garantir que está usando a versão mais recente.
Você pode usar o viver() função para vincular a cada instância de um elemento na página, presente e futuro. Isso economiza que você teria que se referir.
$("a.removeLink").live("click", function() {
$(this).next("input").remove();
}