画像付きのウェブページがあります。ユーザーは画像をクリックして、これらの画像を show() または hyde() できます。
ユーザーがポップアップを開いて動画を視聴することがあります。
次に、コード hide() 以前に開いたすべての要素。
ユーザーがビデオを閉じるとき、それらだけを表示するために、以前に開いた要素を知る必要があります。
それを行う最善の方法は何ですか?
私がやったこと:
配列を作成し、画像名をそれにプッシュします。
var arr_popup_open = [];
次に、ユーザーがポップアップを開いてすべての要素を非表示にすると、この関数が呼び出されます。
function toggleAllPopup() {
if( $('#popup_micro_1').is(":visible"))
{
$('#popup_micro_1').hide();
arr_popup_open.push('#popup_micro_1');
}
if( $('#popup_micro_2').is(":visible"))
{
$('#popup_micro_2').hide();
arr_popup_open.push('#popup_micro_2');
}
if( $('#popup_micro_3').is(":visible"))
{
$('#popup_micro_3').hide();
arr_popup_open.push('#popup_micro_3');
}
}
// and so on ... I have 7 images so it seems it's not very well optimized
以前に開いた画像のみを表示する必要がある場合は、このコードを実行して、配列内の要素を show() にループします。
$('#close_pop_up').click(function() {
for(var i= 0; i < arr_popup_open.length; i++)
{
$(arr_popup_open[i]).show();
}
});
あれについてどう思う ?それを行うより良い方法はありますか?