пазл jquery click click - PullRequest
       9

пазл jquery click click

0 голосов
/ 23 октября 2009

Это повторный пост с дополнительной информацией ...

Я создаю кучу тегов динамически, добавляю их в I, затем добавляю обработчик кликов ...

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

Если в результате я получу 10 тегов и нажму первый, я получу 10 (ДЕСЯТЬ!) Предупреждений, но все они показывают идентификатор тега, на который я действительно нажал.

(Если я нажму 5-й тег, да, я получу 5 предупреждений - все с идентификатором 5-го тега ...)

Что здесь происходит? Это потому, что я динамически создал теги? Есть ли способ избежать этого?

Вот код, который создает теги

$(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/>");
    });
  });
});

Вывод Firebug не показывает ничего странного.

Есть идеи, что здесь происходит?

Спасибо

1 Ответ

2 голосов
/ 23 октября 2009

Попробуйте использовать $ ("# nav> a") в качестве селектора вместо $ ("# nav a"). Если это не сработает, просто убедитесь, что вы связываете событие click с любыми циклами, которые у вас могут быть. Например, если у вас есть привязка события click внутри $ .each (), которую вы используете при создании тегов привязки, она создаст более одного события click.

...