문제

이것은 더 많은 정보가 포함 된 반복 게시물입니다 ...

나는 많은 태그를 동적으로 만들어서 클릭 핸들러를 추가합니다 ...

$(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 (10!) 알림을 얻습니다. 그러나 실제로 클릭 한 태그의 ID를 표시합니다.

(5 번째 태그를 클릭하면 5 번의 알림을받습니다 - 모두 5 번째 태그의 ID와 함께 ...)

여기서 무슨 일이야? 태그를 동적으로 만들었 기 때문입니까? 그것을 피할 수있는 방법이 있습니까?

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

Firebug 출력은 이상한 외모를 보여줍니다.

여기서 무슨 일이 일어나고 있는지 아십니까?

감사

도움이 되었습니까?

해결책

$ ( "#nav> a")를 $ ( "#nav a") 대신 선택기로 사용해보십시오. 그래도 작동하지 않으면 클릭 이벤트를 구속하고 있는지 확인하십시오. 예를 들어 앵커 태그를 만들 때 가지고있는 $ .Each () 내부에 클릭 이벤트 바인딩이있는 경우 한 번 이상 클릭 이벤트가 생성됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top