1

Lightbox javascript画像プラグインをハッキングして、ページのギャラリーからサムネイルを表示しています。<img>このページには、 「gallery-image」のクラスを持つ一連のページがあります。それらを集めて、「lb-thumbs」という名前のライトボックスオーバーレイのdivにドロップします。そこで、このコードをライトボックス関数の1つに配置しました。

var $thumbs = ($(".gallery-image").get());
$lightbox.find('.lb-thumbs').append($thumbs);

動作しますが、ライトボックスが開くとすぐに元の画像(ライトボックスオーバーレイの後ろ)が消えるので、ライトボックスを閉じると、ページの元のhtmlギャラリーが消えてしまいます。ブラウザインスペクターツールのおかげでライトボックスが開いたときにこれが起こっていることを私は知っています。したがって、私のコードには、<img>アイテムが消える原因となっているものが含まれている必要があります。jQueryでしょうget()append()?これがどこで起こっているのかわかりません。あなたはできる?

ありがとう!マット

4

2 に答える 2

0

append()が実際に問題を引き起こしていると思います。追加を行う場合、新しいオブジェクトを作成するのではなく、古い画像をDOMから引き出して、ライトボックスに再挿入するだけです。

挿入する前に、いつでもオブジェクトのクローンを作成できます。

デモ

$lightbox.find('.lb-thumbs').append($thumbs.clone());
于 2012-08-06T18:11:04.393 に答える
0

メソッド.get()が元の配列への参照を返すようです。.get()とにかく不要です。これを試して:

var $thumbs = $(".gallery-image");
$lightbox.find('.lb-thumbs').append($thumbs);

アレイを割り当てる前に、アレイのクローンを作成することもできます。

var $thumbs = ($(".gallery-image").clone().get());
$lightbox.find('.lb-thumbs').append($thumbs);
于 2012-08-06T18:12:38.510 に答える