2011-02-16 2 views
0

새로운 내용이 div에로드 될 때 jScrollPane을 다시 초기화하고 싶습니다. 지금까지 얻은 내용을 heres로 보았습니다.jScrollPane을 내용과 함께 동적으로로드하지 못합니까?

일종의 페이지는 나지만 JavaScript에 익숙하지 않으므로 아마 뭔가하는 것으로 생각됩니다. 잘못된.

업데이트 :

 function loadContent() { 
     $('#content').load(toLoad,'',showNewContent) 

    } 
    function showNewContent() { 
     $('#content').show(1,hideLoader()); 
     $('.content_pane').jScrollPane(); 
    pane.reinitialise(); 

    } 

여전히 한 번만로드됩니까?!

업데이트 2 :

function loadContent() { 
     $('#content').load(toLoad,'',showNewContent) 

    } 

    function showNewContent() { 
     $('#content').show(1,hideLoader()); 
     $('.content_pane').jScrollPane(); 
      var api = $('.content_pane').jScrollPane(
    { 
     showArrows:true, 
     maintainPosition: false 
    } 
).data('jsp'); 

     api.getContentPane(); 
     api.reinitialise(); 
    } 

HTML :

 <div id="content_pane" class="content_pane"> 
     <div id="content" > 
     <!-- content delivered here -->  
     </div> 
    </div> 

아주 간단합니다.

답변

0

이 코드 : 데이터를 받기 전에

$('.content_pane').jScrollPane(); 
pane.reinitialise(); 

가 호출됩니다. 이 코드를 showNewContent으로 이동하십시오.

()showNewContent()에서 삭제하십시오. 콜백입니다. 전화하지 말고 기능을 제공해야합니다. jScrollPane으로 전화하는 것은 한 번만해야합니다. 여기

버전 수정됩니다 :

: 당신이 JScrollPane의 2를 사용하는 경우이 예제와 같이에 내용을로드 창에 대한 참조를 얻기 위해 getContentPane 방법을 사용할 필요가

$('.content_pane').jScrollPane(); 
function loadContent() { 
    $('#content').load(toLoad,'', function(){ 
     showNewContent(); 
     pane.reinitialise(); 
    }); 
} 
+0

작동하지만 스크롤 창을 다시 초기화하지 않습니다. – stokkseyri

+0

@stokkseyri 업데이트 된 답변보기 – gor

+0

업데이트 된 질문보기, thanks. – stokkseyri

0

http://jscrollpane.kelvinluck.com/ajax.html

나는 (#content.content-pane을 기준으로) 당신의 HTML의 구조를 잘 모르겠어요 그래서 나는 당신에게 완벽한 예를 들어 줄 수 없습니다. 그러나 코드에서 알 수있는 또 다른 문제점은 pane이 창을 포함하는 jQuery 객체에 대한 참조라는 것입니다. API (재 초기화 방법이있는)에 대한 참조를 얻으려면 jScrollPane을 초기화 한 후 .data('jsp') 속성에 액세스해야합니다. 그러나 jScrollPane 다음에 reinitialise을 직접 호출 할 필요가 없습니다. 창이 초기화되면 동일한 효과를냅니다.

+0

참조 용으로 html 구조체를 추가했습니다. – stokkseyri

관련 문제