2

プログラム!私はこのサイトで私のような同様の問題の解決策を見つけましたが、私に起こっていることはかなり珍しいことであり、それらが当てはまるとは思いません。

このページ:http ://tdg.gswitchhost.com/calendar/

私は本当に気にしないこのプラグインを使用することに固執しています。これはWordpressサイトですが、今後のイベントを一覧表示するプラグインはWordpressのようには動作しません。それはそれとは完全にユニークなこのシステムを備えています。投稿は投稿データベーステーブルの外部に存在するため、まったく異なる方法でこれらをクエリする必要があります。残念です。だから私の問題:

イベントリストで魔法を使ってアコーディオン効果を追加するjqueryがいくつかあり、これは機能します。でも。ページネーションリンクをクリックして次のイベントセットをロードすると、プラグインはイベントのページ2にリンクする代わりに、非同期クエリを実行し、ページをリロードせずに次のイベントセットを既存のページにロードします。新しいイベントの1つをクリックすると、アコーディオンは機能しなくなります。

私が起こっていると思うのは、クリックすると、プラグインがイベントを含むUL全体を削除し、同じクラス名で2番目のレコードセットを含む2番目のまったく新しいイベントをロードすることですが、JavaScriptは最初のULで初期化されているため、プラグインが削除されても、ページがリロードされてjavascriptが再度実行されなかったため、新しいセットは影響を受けていません。

.on()とLivequeryプラグインを使用して、ページネーションリンクをクリックしたときにjavascriptを再実行しようとしましたが、クエリが実行されて新しいULが読み込まれるため、遅延が発生するため、をクリックするとjavascriptが再度実行されると思います。リンクしますが、クリックしたときにULがまだロードされていないため、jqueryが機能するものは何もありません。

申し訳ありませんが、これは非常に長いですが、できるだけ明確にしたいと思います。私が間違っている?これは私を殺します、私は時間が不足しています、そして私は本当にこれを機能させる必要があります。そうすれば、どのイベントのセットがページにロードされても、アコーディオン関数がそれで機能します。

アコーディオンを初期化するJavaScriptは次のとおりです。

$('.eventListingNew').accordion({
    headerClassName: 'accordionHeader',
    headerActiveClassName: 'accordionHeader-active',
    contentClassName: 'accordionContent',
    collapseAll: false,
    speed: 250
});

そして、これは非常に長いので、アコーディオン関数全体のペーストビンです。http://pastebin.com/BvDseg3g

4

1 に答える 1

2

簡単なことは、Ajaxの完了が完了したときにそれを呼び出して、再初期化することです。

$(document).ajaxComplete(function(event, xhr, settings) {

    $('.eventListingNew').accordion({
        headerClassName: 'accordionHeader',
        headerActiveClassName: 'accordionHeader-active',
        contentClassName: 'accordionContent',
        collapseAll: false,
        speed: 250
    });

});
于 2013-02-25T14:47:00.177 に答える