2009-08-04 4 views
0
내가 지금의 jQuery .load 방법을 사용하여 내 모든 웹 사이트 페이지를로드하기 위해 노력하고있어

은 내 웹 사이트의 모양을 먹으 렴 div #content에 내 페이지를로드합니다. 잘 작동합니다! 문제는 없지만 test.php를로드 할 때 어떤 링크 나 버튼 또는 다른 클래스에서 class = "link"를 사용하면 작동하지 않고 새 페이지가 내 #content 외부로로드됩니다.JQuery와 AJAX는 부하 문제

이미이 파일을 새로로드 된 파일에 복사하려고 시도했지만 작동하지 않는다면 누구나 힌트를 얻었습니까?

감사

답변

2

당신이 이벤트를 바인딩 할 때 그것은 단지 그 당시 DOM에있는 요소에 바인드 때문이다. 따라서 나중에 새 항목을 추가하면 이전에 첨부 한 이벤트에 바인딩되지 않습니다. jQuery 1.3이 있다고 가정하면이 함수를 호출 할 수있는 내장 함수가 live입니다. 이를 통해 이벤트를 현재 및 미래의 모든 요소에 바인딩 할 수 있습니다. 모든 이벤트를 지원하는 것은 아니지만 click이 지원합니다.

그래서 마음에, 당신은 단지이 대체해야한다는 유지 : 그것은 훨씬 더 효율적으로하기 때문에

$('a.link').live('click', function(e) { 

은 (I이 (가)를 추가 셀렉터 :.이와

$('.link').bind('click', function(e) { 

을 가능한 경우 태그 지정)

jQuery 1.3이없는 경우 가능한 한 빨리 업그레이드해야합니다. 그럴 수 없다면 동일한 목적을 달성하지만 훨씬 덜 우아한 방식으로 구현되는 livequery 플러그인을 확인하십시오. 또는 새 데이터를로드 할 때마다 액션을 바인드하고 호출하는 기능 만 있으면됩니다. 그러나 모든 것을 고려하면 jQuery의 live이이를 수행하는 가장 좋은 방법입니다.

+0

나는 또한 '포커스'와 '블러'라이브 기능이 필요할 경우 라이브처럼 작동하는 본드라는 플러그인을 작성했습니다. http://code.google.com/p/jquery-plugin-dev/source/browse/trunk/jquery.bond.js – Tres

+0

좋아 보이지만 여전히 버튼으로 작동하지 않으며 POST 데이터를 보내야합니다. 내 새 test.php 페이지, 다른 힌트를? 감사합니다. –