2012-12-13 8 views
0

jquery/ajax에 의해 추가 된 버튼이 있는데이를 클릭하면 값 (번호)을 얻고 싶습니다. 문제는 결코 발생하지 않는다는 것입니다. .ready에서도 클릭하면 발생합니다. 외부에서로드가 발생하면 아무 일도 일어나지 않습니다.클릭 이벤트 준비가 완료되면 클릭 이벤트 처리기가 발생합니다.

$('.page').on("click", function(event){ 
    alert("clicked"); 
} 

<button class="page">1</button> 

여기서 내가 뭘 잘못하고 있니?

답변

2

대신보십시오 : 당신의 요소가 동적으로 추가되기 때문에

$('body').on("click", ".page", function(event){ 
    alert("clicked"); 
} 

, 당신은 페이지가로드 될 때 존재하는 요소에 따라 클릭 이벤트를 바인딩해야합니다. 이상적으로 DOM보다 몸에 더 가까운 요소가 필요하지만 최악의 경우에는 그 요소를 사용할 수 있습니다. docs에서

:

이벤트 핸들러는 현재 선택된 요소에 바인딩; 코드가 .on()을 호출 할 때 페이지에 이 있어야합니다. 요소가 있는지 그리고 선택할 수 있는지 확인하려면 페이지의 HTML 태그에있는 요소의 문서 준비 처리기 내에서 이벤트 바인딩을 수행하십시오. 새 HTML이 페이지에 삽입되는 경우 새 HTML이 인 페이지가 삽입 된 후에 요소를 선택하고 이벤트 처리기를 연결하십시오.

+0

Doh! 나는 실제로 그것을 생각했다. 그러나 나는 그것을 시험해 보는 것을 잊었을 정도로 늦었다 고 생각한다. :) 거의 즉각적인 대답에 감사드립니다! – DominicM

+0

클릭 이벤트에서 내 아약스 호출을 바인딩합니다 ...하지만 여전히 문서를로드 할 준비가 되었습니까? 왜 그런 생각이 들었습니까? – aahhaa

+0

@wlin - 귀하의 의견으로는 말할 수 없습니다. 질문을 작성하고 코드를 게시하십시오. – j08691