1

私は私たちのサイトに次のテーマを使用しています:http://themes.vivantdesigns.com/vpad/#dashboard.html

ユーザーが左側のドリルダウンメニュー内のリンクをクリックしたときに、ajaxローダーにリンク/タブの[次へ]を表示させたい。リンクからわかるように、コンテンツは次の場所に動的に読み込まれます。

<section id="main-section">Pagename.html loaded here</section>

したがって、基本的には、ajaxローダーをメニューリンクの右側に表示し、動的コンテンツが読み込まれると消えるようにします。デモリンクでこの一時停止を確認するのは難しいでしょうが、データベースクエリが重いと、しばらくそこに留まり、もちろん接続が遅くなります。

どんな緊急の助けも大歓迎です。

onClickメソッドの表示/非表示、ドキュメントのクラスの非表示の準備を試しましたが、何もうまく機能していないようです。

4

1 に答える 1

1

さて、ajaxが発生している場所を見つけるために多くのことをいじくり回した後、私はそれを解決したと思います(jQueryにほとんど精通していない/ハッシュチェンジやバーベキューについて聞いたことがない)ので、これを試してみてください。

アクセスできると仮定すると、参照したページには、global.jsというJavaScriptファイルが含まれています。

最初に非表示にした「読み込み中」の画像/divなどを各メニュー項目の横に追加します。IDはメニュー項目の名前と同じように設定します(例:id = "mediaLoading")。

global.jsを開き、117行目に進みます。

$('#'+id).length && $('#'+id).remove();

この行の後にajax呼び出しが行われるので、ajaxローダーを表示するコードを追加します。

var loaderId = h.replace(/^\#/, "") + "Loading";
document.getElementById(loaderId).style.display = 'block'; 
//or $("#" + loaderId).show() or whatever you would use in jQuery

最後に、それを再度非表示にするには、同様のコードをインラインの「complete」関数に追加します(これは127行目あたりになります)。

complete: function(jqXHR, textStatus) { 
    document.getElementById(loaderId).style.display = 'none';
}

それがそれを解決することを願っています。ローカルでテストすることは困難でした。

このファイルは「グローバル」と呼ばれるため、他の多くのページに明らかに影響を与える可能性があるため、ローダーまたは別のファイルにnullチェックを使用することをお勧めします...

于 2012-12-05T06:59:48.187 に答える