非常に人気があると思われる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 の第一人者ではありませんが、要素が呼び出し前の状態に復元されたとスクローラーのドキュメントに記載されている場合、このメソッドがなくなることを期待していました。右?
ありがとう!私はこのフォーラムに比較的慣れていません。形式や詳細が適切に表現されていない場合はご容赦ください。