Pergunta

Este é um post repetido com mais informações ...

Eu crio um monte de tags dinamicamente, anexando -as a um Manipulador de cliques ...

$(document).ready(function(){
    // ... code to append <a> tags to nav div        
    $("#nav a").click(function(event){ 
       alert('Clicked '+event.target.id);
       return false;
    });
});

Se eu tiver 10 tags como resultado disso e clicar no primeiro, recebo 10 (dez!) Alertas - mas todos mostram o ID da tag que eu realmente cliquei.

(Se eu clicar na quinta tag, sim, recebo 5 alertas - todos com o ID da 5ª tag ...)

O que está acontecendo aqui? É porque eu criei dinamicamente as tags? Existe uma maneira de evitá -lo?

Aqui está o código que cria as tags A

$(document).ready(function(){
  $.get('_7day-M2.5.xml', {}, function(xml){
    $(xml).find('entry').each(function(i){
      $('#nav').append('<a href="#" id="'+i+'">'+$(this).find("title").text()+"</a><br/>");
    });
  });
});

A saída do Firebug não revela nada estranho.

Alguma ideia do que está acontecendo aqui?

Obrigado

Foi útil?

Solução

Tente usar $ ("#NAV> A") como seu seletor em vez de $ ("#NAV A"). Se isso não funcionar, apenas verifique se você está vinculando o evento de clique fora de qualquer loop que você possa ter. Por exemplo, se você tiver o seu evento de clique em ligação dentro do $ .EECH () que você possui ao criar as tags de âncora, ele criará mais de um evento de clique.

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