2009-05-19 4 views
0

ASP.Net의 마스터 페이지와 마찬가지로 jQuery UI 탭을 사용하려고합니다. 각 탭이로드되면 특정 javascript를 실행해야합니다. 나는 각 페이지에 $ (document) .ready 함수를 갖기 위해 노력했지만, 나쁜 습관을 갖고 있으며 IE에서만 작동하는 것으로 보인다.

로드 이벤트가 있다는 것을 알고 있지만 각 탭마다 이벤트가 필요하며이를 수행하는 방법이나 가능한 경우 확실하지 않습니다. 각 페이지로드에 대해 포스트 백이 포함 된 실제 MasterPage로 되돌려 야 할 수도 있습니다.

답변

1

어디까지 읽었습니까?

Afaik는 복수의 $(document).ready()을 사용하면 단순히 "병합"되어 둘 중 하나에있는 모든 코드가 실행됩니다. jQuery 1.3에 새로운 내용이 있는지 기억이 나지 않으므로 확인해보십시오.

1

불필요하게 여러 개로 분해하지 않는 한 복수 $().ready을 사용하는 것은 바람직하지 않습니다. ajaxily에서로드되는 탭의 경우, IMHO가로드 된 내용 인 안에 $ (document) .ready를 넣는 것은 아마입니다. 탭 특정 작업을 수행하는 가장 좋은 방법 일 것입니다. 새로로드 된 요소가 갓로드 된 탭에 삽입 될 때 새로로드 된 요소를 다시 바인딩하는 데 사용합니다.

+0

.click 이벤트를 바인딩하는 경우 jQuery 1.3에서 (새) .live() 이벤트를 살펴보십시오. 그들은 나중에 일할거야! –

2

$(document).ready()은 jQuery가 작동하는 모든 브라우저에서 작동합니다. 이벤트가 IE에서만 실행되는 경우 자신의 코드에 어딘가에 버그가 있습니다.

내 응용 프로그램에는 수십 개의 준비 기능이 있으며 아무 문제가 없습니다.

+0

모두에게 감사드립니다. 나는 더 많은 연구를했다. 테스트를 위해 내 서브 페이지에서 jQuery에 대한 참조를 포함하고 있었고, 어떤 이유로이 문제가 페이지에 작성된 나머지 JavaScript 문제를 일으켰습니다. "일반적으로로드 된 요소를 새 페이지로 취급하고 $ (document) .ready를 호출하면 안됩니다. 이것은 새로운 페이지는 아니지만 DOM에 추가 된 새로운 요소입니다. 모든 Ajax 메소드에는 콜백 메소드가 있습니다 데이터가 성공적으로로드 될 때 호출됩니다. " 그건 내가 잘못 읽은 것 같아. 나는 지금 일하고있다. 다시 한 번 감사드립니다! – Kyle