2010-08-16 8 views
0

main.php 안에 div에 포함 된 다른 페이지 (page1.php)가 삽입되어 있습니다. page1.php가로드 될 때 page1의 테이블을 동적으로 업데이트하고 있습니다.jquery의 첫 번째 클릭에서 클릭 이벤트가 발생하지 않았습니다.

이제 테이블의 click 이벤트에서 함수를 호출하면 함수가 호출되지만 함수 내부에서 호출 한 테이블의 click 이벤트에는 컨트롤이 입력되지 않습니다. 그러나 두 번째 이상을 클릭하면 컨트롤이 시작되어 정상적으로 작동합니다.

$(function() { 
    highlight_table(); 
}); 

경우 :

다음은 JS에서 함수가 이벤트 핸들러가 부착 될 수 있도록 당신이 DOM이로드이 함수를 호출하고 있는지 확인 처음

function highlight_table() 
{ 
$(#table tr).click(function(){ 
alert("here"); 
}); 

답변

1

파일입니다 table은 DOM이로드되었지만 나중에 AJAX를 사용하여 추가 될 때 AJAX 요청의 success 처리기에서이 함수를 호출해야 할 수 있습니다. 테이블이 업데이트 될 때 클릭 처리기가 유지되도록 (필요한 경우)

또한 당신은 .live() 기능을 사용할 필요가 있습니다

$('#table tr').live('click', function() { 
    alert('here'); 
}); 
0

또한에서와 .delegate() 기능을 조사 할 수 있습니다 무엇을 내가 읽은 바에 따르면 jQuery의 제작자는 사용자를 .live() 이상으로 유도하고있는 것으로 보입니다.

관련 문제