1

私は最近、小さなプロジェクトで jQuery モバイルの実験を開始しましたが、問題が発生しました。私はこのフレームワークを使用する非常に初心者であり、あなたが提供できるアドバイスをいただければ幸いです

問題の原因となっている問題のスクリプトは、カスタム スクロールバー http://manos.malihu.gr/jquery-custom-content-scroller/です。

メニュー項目をクリックすると、カスタム スクロールバーを含むスライド イン パネルがトリガーされるという考え方です。問題は、サイトを初めてロードしたときに、スクロールバーが正常に表示されることです。その後、別のページに移動して最初のページに戻ると、スクロールバーが重複しているように見えます。このプロセスをもう一度繰り返すと、3 回目と 4 回目に表示されます。

この問題は、AJAX 読み込みが使用されているデスクトップでのみ発生しているようです。そして、それが発生するのは「最初の」ページだけです。理想的には、できれば AJAX の読み込みを維持したいのですが、リンクで rel=""external" を使用すると問題が解決するように見えるため、これが問題の原因のようです。可能であれば避ける

<!DOCTYPE html>
<html>
<head>

//containing Jquery mobile js and css as well as bootstrap and a few smaller extras

</head>   

<body>

<div data-role="page" class="padded-bottom" id="member-page">

//slide in panels are included here

<div data-role="header" class="top-bar">

//contains the menu

</div><!-- /header -->

<section data-role="content" class="mid" style="height:auto;">

//page content

</section>

//footer content

<script>

$(".content-scrollbar").mCustomScrollbar({
advanced:{updateOnContentResize:true}
}); 

</script>

//other minor footer scripts

</div><!-- page -->

</body>
</html>`

これは私の「最初のページ」の基本的なレイアウトです。ただし、サイトの後続のページはほぼ同じようにレイアウトされており、これが間違っている可能性があると思います。「最初の」ページから離れてそこに戻ると、ページが何らかの方法でキャッシュされている可能性があると仮定すると、読み込みスピナーが表示されなくなりますが、問題が発生するのはそのときです。

とりとめなく申し訳ありませんが、これについてアドバイスをいただければ幸いです。それは私を狂気に駆り立てており、その周りを見つけたいと思っています。ありがとう

4

1 に答える 1

0

してみてください :

$(".content-scrollbar").mCustomScrollbar("update"); 

ajax後にUIを更新する

多分

$(".content-scrollbar").mCustomScrollbar("destroy");

プラグインを初期化する前に

お役に立てれば幸いです

編集 1

if($(".mCustomScrollbar").length > 0){
    $(".content-scrollbar").mCustomScrollbar("destroy");
}


$(".content-scrollbar").mCustomScrollbar({
    advanced:{updateOnContentResize:true}
}); 
于 2013-11-02T14:15:26.850 に答える