0

jScrollPanelをインストールすると正常に動作しますが、ajaxからコンテンツをキャッチしようとすると、コンテンツがないと見なされるため、スクロールバーが作成されません。

だから私の質問は、どうすればjScrollPanelを再レンダリングできるので、スクロールバーをオン/オフにする必要がありますか?

これが私のキャッチスクリプトです:

 "chatlog": function() {
      $.ajax({url: '?chatlog=&' + new Date(),success: function(data){
         if ( nagoom.trim(data) != "") {
            $('#__chatlog').html(data);

        }
      }});
     }

これが私がそれをインストールする場所です:

$('aside .chat-entity').jScrollPane({
        showArrows: true,
        verticalGutter: -13,
        autoReinitialise: true
});

私はこのスクリプトを使用していますhttp://jscrollpane.kelvinluck.com/less_basic.html

4

1 に答える 1

0

明らかに、API オブジェクトに再初期化メソッドがあります。これを応答関数に含めます。詳細については、こちらを参照してください。

編集:このスクリプトを使用したことがないため、コードを提供することをためらっていますが、次のように機能すると思います:

success: function(data){
     if ( nagoom.trim(data) != "") {
        $('#__chatlog').html(data);
        jScrollPaneObjectReference.data('jsp').reinitialise();
    }
  }

ここで、jScrollPaneObjectReference は、パネルを作成したときに返されたオブジェクトです

編集:さらに明確にします。jScrollPaneObjectReference は、これを行うときに返されるオブジェクトを参照する必要があります。

$('aside .chat-entity').jScrollPane({ showArrows: true, verticalGutter: -13, autoReinitialise: true }); 

これをコードの先頭に置いてみてください:

window.jScrollPaneObjectReference = $('aside .chat-entity').jScrollPane({ showArrows: true, verticalGutter: -13, autoReinitialise: true });

編集: autoReinitialise パラメータを削除してみてください。

于 2012-10-07T09:36:56.107 に答える