いくつかの非表示の div があるページがあります。これらの div は、CSS ハンドラーを使用して非表示にされ.div {display: none}
ます。
これらの非表示の各 div 内には、TN3 と呼ばれる jQuery プラグインを使用して構築された、jQuery を利用したスライドショーがあります。
非表示の各 div は、ページに表示される写真にリンクされています。写真をクリックすると、対応する非表示の div が表示され、所定の位置にスライドされます。写真をもう一度クリックするか、非表示の div 内の閉じるボタンをクリックすると、スライドして元に戻り、再び非表示になります。これは、単純な jQuery 表示/非表示トグル スクリプトを使用して行われます。
私の問題は、写真をクリックして「非表示」の div が表示されると、現在表示されている div の jQuery スライドショーが機能しないことです。
これは、スライドショーのスクリプトが関数を使用しているためだと思い$(document).ready()
ます。非表示の div は DOM の一部ではないため (に設定されているためdisplay:none
)、スライドショーを実行するために必要な jQuery は起動しません。
これにより、次の2つのオプションが残ると思います。
CSS を に設定するのではなく、jQuery を使用してページの読み込み時に非表示の div を非表示にします
display: none
。これは、ページの読み込み時に非表示の div がすべて一瞬表示され、jQuery コードで非表示になることを意味すると思います。これは不格好に見え、望ましくありません。ユーザーが写真をクリックして非表示の div の表示を切り替えると、スライドショーを起動するために必要な jQuery コードを何らかの方法で設定します。これが私が行き詰まるところです-これを行う方法がわかりません。
JavaScript に関する私の知識は jQuery に限定されており、通常は$(document).ready()
. ページの読み込み以外の別のイベントでコードをトリガーする方法がわかりません。
スライドショーのコードは以下です。
どんなアイデアでも大歓迎です
$(document).ready(function () {
$('.tn3-gallery').tn3({
image: {
transitions: [{
type: "fade",
easing: "easeInQuad",
duration: 423
}]
},
thumbnailer: {
overMove: false
},
mouseWheel: false
});
}); // end ready