【问题标题】:Duplicating random content in certain div, and display its mirrored copy复制某些div中的随机内容,并显示其镜像副本
【发布时间】: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


【解决方案1】:

是的,看看jQuery clone method

【讨论】:

  • 我知道这个功能,但我不知道它也可以复制诸如高度、颜色等随机变化之类的东西,这行得通吗?
  • @Ilya 是的,应该可以工作,因为内联样式将被克隆为元素的一部分。
猜你喜欢
  • 1970-01-01
  • 2015-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多