2013-04-21 2 views
1

나는 다음과 같은 방법으로 채울 이는 UL이 있습니다JQuery와, 리 태그 내에 HREF

$("#dropdownFloorplanGroups").append("<li><a href='#'>" + value.Name + "</a></li>"); 

이 내 브라우저에서 제대로 표시 내가 불 수없는 것 그러나

클릭 이벤트를 설정하면 내가 설정 한 이름이 알려 집니 다. <li></li>

나는 이것을 시험해 보았지만 아무 일도 일어나지 않았다.

$('li a').click(function (e) { 
       alert($(this).find("a").text());     
      }); 

jquery 클릭 이벤트는 무엇이되어야합니까?

$('#dropdownFloorplanGroups').on('click', 'li a', function(e) { 
    alert($(this).text());     
}); 

$('li a') 계정에 새로 생성 된 요소를 가지고 가지 않을 것이다

:

+0

, 당신은 "li의 자손 인"에 이벤트를 바인딩합니다. 그래서'this'는 그 요소 인 링크 자체를 나타냅니다. 포함 된 링크를 찾으려면'find'를 사용할 수 없습니다. 링크 자체이기 때문에. – kapa

답변

6

당신은 이벤트 위임을 사용합니다.

+0

와우! 감사! 그것은 매력처럼 작동합니다 –

+0

원래 코드는 코드가 실행될 때 그 시점에 존재했던 요소들에만 클릭 이벤트를 적용합니다. 여기에 주어진 코드는 항상 사용할 수있는 문서 요소에 바인딩하고 (항상 사용할 수있는) 문서 요소를 클릭하고 문서는 두 번째 매개 변수에 설명 된 패턴을 따르고, 두 번째 매개 변수에 설명 된 패턴을 따르는 경우이 함수를 트리거합니다. – Aeolun

+2

@Aeolun :'document'에 바인딩하는 것은'.live()'가 한 일입니다. 이 것은'# dropdownFloorplanGroups'에 묶여 있으며 더 빠릅니다. – Blender