2010-01-16 5 views
2

저는 작업중인 페이지에서 jquery-tools 탭과 회전식 메뉴를 사용하고 있습니다. 회전식 메뉴는 탭 내에 포함되어 있으며 탭은 beforeClick 콜백에로드됩니다.자바 스크립트 생성자가 이미 실행되었는지 어떻게 알 수 있습니까?

일반적으로는, 회전 목마는과 같이 문서 준비 기능을 초기화합니다 : 회전 목마가 beforeClick를 통해로드 될 때 DOM이 준비가되었을 때,이 탭은 'hasn 그것 때문이 작동하지 않습니다

$(function() { 
     // initialize scrollable 
     $("div.scrollable").scrollable({ 
       size: 3, 
       clickable: true, 
       loop: false 
      }).mousewheel(); 

아직로드되지 않았습니다.

첫째, 내가 처음로드 될 때 스크롤을 초기화하는 핸들러를 추가 할 수있는 이벤트가 :

 $("ul.tabs").tabs("div.panes > div", { 
      initialIndex: 0, 
      onBeforeClick: function(event, i) { 
        // get the pane to be opened 
       var pane = this.getPanes().eq(i); 

       var src = this.getTabs().eq(i).attr("href"); 
       var langPattern = "/^" + getLang() + '/'; 
       var forceReload = false; 
       if (src.match(langPattern) == null) 
       { 
        src = getLang() + "/" + src; 
        forceReload = true; 
       } 
       if (pane.is(":empty") || forceReload) { 
        // load it with a page specified in the tab's href attribute 
        pane.load(src); 
        // initialize scrollable - ONLY SHOULD BE DONE ONCE 
       $("div.scrollable").scrollable({ 
        size: 3, 
        clickable: true, 
        loop: false 
       }).mousewheel(); 
       } 
      } 
     }).history();; 

내 질문

은 두 파트너 사입니까? 둘째로, 스크롤바가 아직 구축되지 않았다면 알 수있는 방법이 있습니까?

이 코드의 배경은 사용자의 언어 선택에 따라 지역화 된 HTML 조각을로드하는 것입니다. 이것은 CD가 아닌 온라인 카탈로그입니다.

답변

0

은 내가 load 전화에 콜백을 부착하여 내 문제를 해결?
1

jQuery live event을 확인하시기 바랍니다. 이 이벤트는 현재 및 미래의 모든 DOM 일치 항목과 일치합니다.

EDIT 1 당신은 div.scrollableonload 이벤트에 올바른 바인딩 할 ?

pane.load(src, "", function(){ 
    $("div.scrollable").scrollable({ 
     size: 3, 
     clickable: true, 
     loop: false 
    }).mousewheel();  
}); 
+0

하지만 어떤 이벤트를 결합하는 것까지 :

$('div.scrollable').live('load', function() { // etc. }); 

+0

edit 1, thanks 덕분에 –

+0

이것은 작동하지 않았습니다. 문서 준비가되었을 때 dom에 스크롤 가능 항목이 없기 때문에 생각합니다. 그것은 좋은 기술이지만, 나에게 그것을 보여 줘서 고마워! –

관련 문제