我有一个包含文本/图像的div和一个用于这些图像的自定义jQuery插件。基本上,该插件所做的就是使用setInterval每隔3秒生成一次fadeIn/fadeOut效果。这个div类似于“cache”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");有谁能帮我解决这个问题吗?我不想在用户请求查看缓存时加载图库插件,它需要已经加载。
发布于 2012-08-16 08:08:59
使用$.clone(true)这将保留事件。
http://api.jquery.com/clone/
https://stackoverflow.com/questions/11979004
复制相似问题