0

テキスト/画像とそれらの画像用のカスタム jQuery プラグインを含む div があります。基本的に、プラグインが行うことは、setInterval を使用して 3 秒ごとにフェードイン/フェードアウト効果をアニメーション化することだけです。この div は「キャッシュ」div に似ています。ユーザーがこの div の表示を要求すると、.clone() を使用してビューアー div に読み込みます。ただし、タイミング イベントはコピーされず、ギャラリーの現在の状態がコピーされるだけです。

私が書いたプラグインはキャッシュ div のギャラリーにのみ適用され、それを複製するとプラグインをコピーする方法がないためです。

ギャラリー コードのスニペットは次のようになります。

var animateCb = function() {
    if($next_image.length == 0)
        $next_image = $images.filter(":first");
    $curr_image.fadeOut(settings.speed);
    $next_image.fadeIn(settings.speed);
    $curr_image = $next_image;
    $next_image = $curr_image.next();
}
setInterval(animateCb, settings.time);

次に、次のような div があります。

<div class='cache' id='cache-1'>
    <div class='gallery' id='gallery-1'>
            <div class='gallery-item' id='gallery-item-1'><img src='img1.jpg' /></div>         
            <div class='gallery-item' id='gallery-item-2'><img src='img2.jpg' /></div>
    </div>
</div>

を使用してギャラリープラグインを適用します

$(".gallery").gallery();

そして、キャッシュdivを表示divにコピーしたいときは、使用します

$("#viewing-div").empty();
$("#cache-1").clone(true).appendTo("#viewing-div");

これを修正できる方法はありますか?ユーザーがキャッシュの表示を要求したときに、ギャラリー プラグインをロードしたくありません。既にロードされている必要があります。

4

1 に答える 1

0

これを使用$.clone(true)すると、イベントが保持されます。

http://api.jquery.com/clone/

于 2012-08-16T00:08:58.580 に答える