Pergunta

Eu quero adicionar o evento click para todos os elementos, onde o " id="violacao":

$(document).ready(function () {
    jQuery('#violacao').click(function() {
        alert('teste');
    });
});

Mas apenas o primeiro link responde ao clique.Este é o HTML gerado:

<tr>
  <td><a href="#" id="violacao">40954589</a></td>
  <td>Perda de Comunicação</td>
</tr>

<tr>
  <td><a href="#" id="violacao">88692020503</a></td>
  <td>Perda de Comunicação</td>
</tr>

Quando eu tente desta forma:

jQuery("a").click(function() {
    alert('teste');
});

Ele funciona muito bem, exceto que todos os links são afetados.O que há de errado?

Foi útil?

Solução

IDs em HTML são destinadas a ser único (um por documento). Mudar o ID para uma classe (e uso. Em vez de #) e ele deve funcionar.

Outras dicas

Enquanto que o Steve Mason diz que é verdade, o problema real não é isso.

Se você alterar a IDENTIFICAÇÃO de uma classe de um problema persiste:todos os links vão ficar afectado.

Em vez disso, se você apontar para afetar um único <A>, você deve fazer o seguinte:

a) Atribuir IDs únicos para cada um <A>, em seguida, fazer algo como o que você estava fazendo em primeiro lugar;ou

b) Atribuir classes e usar o :primeiro seletor:

jQuery("a.violacao:first").click( function (){
  alert('teste');
} );

Que serão aplicadas a primeira correspondência de âncora com a classe de violacao.Como alternativa, se você deseja afetar um determinado âncora, você poderia usar :eq(índice).

Para uma lista completa dos seletor, visite http://docs.jquery.com/Selectors.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top