我有一个 div,其中包含文本/图像和这些图像的自定义 jQuery 插件。基本上插件所做的就是使用 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");
有没有人有办法解决这个问题?当用户请求查看缓存时,我不想加载图库插件,它需要已经加载。