2011-03-24 5 views
0

여기에 - 클릭 이벤트는 페이지에 요소 묶음을 추가하며 모두 동일한 ID를가집니다 (여기에 문제가 있습니까?). "라이브"이벤트에서 아약스로 추가 된 요소의 값을 얻는 방법은 무엇입니까?

나는 이러한 모든 요소에 클릭 이벤트를 할당하는 라이브 함수를 사용

$("#tag").live('click', function() { console.log($("#tag").html()); });

나는 그들 중 하나를 클릭

는, 첫 번째 요소의 값이 기록됩니다.

내가 실제로 클릭 한 요소 중 어떤 것을 클릭 이벤트에 알릴 수 있습니까? 감사합니다.

업데이트 : 클래스 및 $ (this)를 사용하는 방법입니다. 문제 해결됨. 그레고리와 존 감사합니다!

답변

1

추가 된 요소가 모두 동일한 ID를 갖고 동일한 클래스가 아닌 경우 문제가됩니다. 도움이 필요하면 요소를 추가하는 코드를 게시해야합니다.

당신이 게시 한 코드에서 라이브 메서드를 .tag 클래스에 연결하는 것을 볼 수 있지만 대신 함수에서 ID # 태그가있는 요소를 참조합니다. classes and IDs의 차이점을 읽어 볼 수 있습니다.

문제 해결이 시도 : 당신이 도착하기 위해 다음을 수행 할 수 있습니다, 또는

$(".tag").live('click', function() { 
    console.log($(this).html()); 
}); 

을 클릭-에 요소 : 나는 클래스가 더 나을 거라고 생각

$(".tag").live('click', function(event) { 
    console.log($(event.target).html()); 
}); 
+1

그 문제를 해결하기 시작했습니다. 그리고 나서 나는 가야만했기 때문에, 나는 그 질문이 어떤 반응을 얻는 지보기 위해 게시하기로 결정했습니다. 내 잘못이야. –

1

것은 $(this).val() 또는 $(this).html()

편집을 사용해보십시오

모든 THR #tag 요소를 통해 루프 후, 당신은 아직도 당신이 요소에 대해 클릭 태그를 확인하기 위해 $ (이)를 사용할 수 있습니다 원하는 경우 루핑. 그 말이 맞는다면.

btw : 동일한 ID를 가진 요소가 여러 개있는 이유는 무엇입니까? 그건 좀 안좋아. 더 나은 방법은 이벤트를 참조하고 첨부 할 수있는 공통 클래스 이름을 가진 요소를 갖는 것입니다.

관련 문제