1

非常に人気があると思われるhttp://manos.malihu.gr/の Jquery Custom Content スクローラーを使用しています。私は最初にそれを使用しようとしましたが、最初は問題なく動作していた Nicescroller に切り替えましたが、その機能で壁にぶつかり、今ここに戻ってきました...

私がやっていることは複雑なことではありません。データは AJAX から取得され、DIV に供給され、AJAX の成功時にスクローラーが DIV に適用されます。DIV は実際にはフォーム エラー メッセージを表示するために使用され、その周りのメイン HTML はフォーム フィールドです。これは関係ないと思いますが、関連するすべての情報を提供したいと思います。

AJAX 呼び出しの「成功」部分は次のとおりです。

 success: function (data) {     
    $('#error_msg_div').html(data); 
    if (submit_status != "OK") //submit_status is a JS variable in data not set to OK  
    { //alert(..) here. At alert pause, error_msg_div shows AJAXed response data.
      //AJAXed response data has absolutely no reference to the DIV or the scroller 
      $("#error_msg_div").mCustomScrollbar({
        theme:"dark",
        scrollButtons:{
            enable:true
            },
        updateOnContentResize:true
      });  
    };
 },

AJAX 応答のサンプル データ (firebug からコピー) を次に示します。

  <div class='err_no' style='left:0px;top:5px;'>1:</div><div style='left:22px;top:5px;' class='err_msg'>First name must have 2 to 20 alphabets only.</div>
  <div class='err_no' style='left:0px;top:17px;'>2:</div><div style='left:22px;top:17px;' class='err_msg'>Middle initial can only be a single uppercase alphabet.</div>

だから問題は何ですか?AJAX 応答は問題ありません。アラートでは、DIV にデータが取り込まれていることがわかります。その直後、 $("#error_msg_div").mCustomScrollbar({... は div を空白にします。firebug に表示される JS エラー メッセージはありません。

静的データを使用してスクローラーを使用してみましたが、正常に動作します。唯一の大きな違いは、プレーンな静的 HTML での使用です。静的テスト HTML ファイルでは、スクローラーが次のように呼び出されました。

 (function($){
     $(window).load(function(){
        $("#xxxxxxxxscroll_div").mCustomScrollbar({
          theme:"dark",
          scrollButtons:{
            enable:true
          },
        updateOnContentResize:true
      });
    });
  })(jQuery);

私はこれに多くの時間を費やしました。スクローラーがまたあきらめないのが好きです。これが分かれば、残りの機能セットは使いやすいと思います。おそらく関係ないフォローアップの質問は、DivのmCustomScrollbarメソッドがまだ表示されているスクロールバーを「破棄」したときです。これはちょっとした質問です... 私は JS の第一人者ではありませんが、要素が呼び出し前の状態に復元されたとスクローラーのドキュメントに記載されている場合、このメソッドがなくなることを期待していました。右?

ありがとう!私はこのフォーラムに比較的慣れていません。形式や詳細が適切に表現されていない場合はご容赦ください。

4

0 に答える 0