2017-11-17 14 views
0

異なるページでjquery UIアコーディオンを使用するサイトがあります。これらのアコーディオンのスクリプトは、それぞれの場合にページに表示されます。JQuery UI Accordionのインスタンスを対象としないでターゲット設定する

私たちはサイト印刷を行う際に、これらのアコーディオンを完全に拡張する必要があるように、毎日のサイトプリントを探しています(サイトプリンタのuserAgent文字列を検出することでこれを行います) 1)。

サイトのプリンタは、コンテンツを完全に展開するためにページ上でjavascriptの実行を停止できますが、コンテンツのロードを防止するためにAJAXスクリプトも使用します。

したがって、ページ上の任意のjqueryアコーディオンをターゲットとし、それらを完全に展開するスクリプトが必要です。すべてのページに存在するcustom.jsファイルがあるので、そこにコマンドを置くことができます。

私の質問では、アコーディオンオブジェクトのすべてのインスタンスを、それらが何であるかを知らないうちにターゲットにすることは可能ですか?私は、すべてのJQueryアコーディオン呼び出しをページ単位で書き直す必要はなく、custom.jsファイルにスクリプトを置く可能性を検討しています(そして、条件付きで書くことを忘れないようにサイトに追加するすべての人を取得しようとしていますuserAgentは、アコーディオンを使用するたびに展開されます)。あなたのコードを見たり、現在のHTMLについては何も知らず

+1

すべてのページですべてのアコーディオンに一致するセレクタが見つかる限り、私はそれが不可能な理由は見当たりません。人々があなたを助けることができるようにいくつかのコードを表示する必要があります。 – caisah

+0

私はすべての自分のアコーディオンにページごとに手動でページを追加し、そのクラスをスクリプトでターゲットにできるのですか?それは働くだろうか?彼らは異なるIDを持っているからです。 – methodOverload

+0

はい。そのとおり! – caisah

答えて

0

は、あなたがこのような何かを試すことができます。

$(".ui-widget.ui-accordion").each(function(index, elem){ 
    // Code that you want to execute on each Accordion 
    // For example, we could disable each one: 
    $(elem).accordion("disable"); 
}); 

私は一度にすべてのパネルを拡大する方法が表示されません。おそらく、各パネルはactivateでなければなりません。これは、アコーディオンが正しいに見えるようにして、すべてを拡大する独自の能力をロールバックするテーマを使用して助言するjQuery UI Accordion Expand/Collapse All

はこれを見つけました。

+0

ありがとうございます。私はそれがそれをすると思います。 はい、私はコードを提供しませんでしたが、それは要求の要点であり、各ページでどのスクリプトを実行したのかわからなくても動作するスクリプトを作成することができました。これありがとう。 – methodOverload

関連する問題