2011-04-26 4 views

답변

3

을 (@ Url.Action가 제대로 작동)를 사용 .live() (광산을 강조) :

는 지금 에서, 현재의 선택과 일치하는 모든 요소의 이벤트 핸들러를 연결합니다 미래.

$("#but").live('click', function() { 
    $('#bigHtml').load('@Url.Action("SecondPage")'); 
}); 
코드에서

, 당신은 페이지 현재 하나 개의 #but 인스턴스에 이벤트 핸들러를 연결하고 있습니다. 컨텐트를 다시로드하면이 인스턴스가 제거되고 이벤트 리스너도 제거됩니다. 새 콘텐츠의 #but 요소는 다른 인스턴스입니다.

이벤트 처리기를 다시 바인딩하지 않습니다. JavaScript 코드가 호출되면 jQuery는 요소 #but을 찾고 완료됩니다. 새로운 콘텐츠를 삽입 한 후에는 해당 요소를 다시 보지 않습니다. live()은 이벤트 핸들러를 요소가 아니라 문서 루트에 연결함으로써이 문제점을 극복합니다.

+0

어떤 이유로 처음 작동하지 않습니다. 이벤트는 시작되지만로드는 아무 것도하지 않습니다. 여러 번 테스트 한 후에 나는 이벤트가 div로 바인딩 되었기 때문에 그것이 "그러나"id가 그의 부모를 변경하려고하기 때문에 그것이 모두라는 것을 이해했습니다. – kulebyashik

+0

@ user724910 : 페이지에 대한 링크가 있습니까? 게시 한 코드는 그대로 (처음으로) 작동합니다. 여기를 참조하십시오 : http://jsfiddle.net/fkling/3tXLK/ –

+0

흠. 이상하게도 이드가 나를 위해 일하지 않는다. – kulebyashik

관련 문제