【发布时间】:2013-05-02 01:24:27
【问题描述】:
是的,这个标题可能看起来很奇怪,但这是我的问题。我有一个 div .experiment 在那个 div 里面我有 span 标签可以随机改变它们的颜色。通常,如果我想创建一个副本,我只会复制标记,但是如果我在这种情况下这样做,则 div 内的所有重复跨度将保持随机,因此与原始跨度不同。有没有办法真正复制一个 div?
编辑:我试图用 jQUery 的.clone(); 来解决这个问题,但简而言之没有成功,我有以下标记:
<div id="post-1">
...
<div class="eq">
<span class="bar-1"></span>
<span class="bar-1"></span>
<span class="bar-1"></span>
<span class="bar-1"></span>
<span class="bar-1"></span>
<span class="bar-separator"></span>
<!-- Duplicate .bar's go here -->
</div>
...
</div>
并遵循 JavaScript:
// This is called when certain events happen
$(".bar").each(function(i) {
fluctuate($(this));
});
//This is a fluctuate function itself
function fluctuate(bar) {
var hgt = Math.random() * 15;
hgt += 1;
var t = hgt * 20;
bar.animate({
height: hgt * 2,
top: hgt
}, t, function() {
fluctuate($(this));
});
}
发生的情况是每个 class="bar-1" 的跨度开始随机改变高度。我需要以某种方式准确地复制所有这 5 个跨度条,并将它们放在跨度之后与class="bar-separator"。 困难我如何准确地复制它们以及与之相关的所有随机高度变化?此外,是否可以以镜像方式显示它们,例如原始数据中的第一个跨度显示为重复数据中的最后一个跨度? 更难每个跨度都有一个class="bar-",而不是一些取决于#post-[id] div 中的数字的数值。所以一个页面上有几个bar实例,但是每个组在bar-之后都有自己的编号。那么如何实现只对特定的一组bar的完全复制呢?
【问题讨论】:
-
这将取决于随机部分的实现方式以及您的实际标记。您能否添加更多细节,并可能添加一个最小示例?
-
@bfavaretto 添加了随机高度的示例,基本上函数被应用于具有特定 id 的所有 span 元素,使它们随机改变高度。
-
但是随机函数是否只应用一次,或者您是否使用计时器定期更改高度?另外,通过查看,我看到您的跨度有 ID。如果克隆它们(例如使用api.jquery.com/clone),则必须删除克隆元素上的 id,否则最终会在文档中出现重复的 id。
-
@bfavaretto 它被应用了一次,我的错误跨度实际上有课程,已经工作了很多。但基本上功能被应用一次,然后跨度开始随机改变高度。
-
好的,但是从您告诉我们的情况来看,我们仍然无法确定发生了什么。我建议首先尝试 Jivings 建议的 jQuery 克隆方法。如果它不起作用,请在jsfiddle.net 上设置一个示例来重现问题,这样我们就可以确切地看到发生了什么。
标签: javascript jquery