2012-02-08 50 views
1

我正在开发一个响应式设计,并希望在某个大小以下的滑块中显示一些内容。但是,我想避免两次渲染数据,因此我们的想法是克隆内容并将其附加到(document).ready()上的滑块,然后将其初始化。这样,我可以在横向模式下以正常方式显示我的内容,在纵向模式下以滑块显示我的内容(从而节省空间)。将内容克隆到滑块

var w = $(window).width(); 

if (w < 769) { 

    $("#container").children(".content").each(function() { 
     $(this).clone().appendTo("#slider ul").wrap("li"); 
    }); 

    initialiseSlider(); // Nothing special about this   
} 

内容被克隆到滑块容器,但由于某种原因,它不会“滑动”。我想这可能是因为滑块被初始化之前,它有任何内容,因为如果我硬编码它,它工作正常。那有意义吗?任何想法,我应该如何解决这个问题?

+0

你的意思是如果你对克隆的内容进行硬编码,它的工作效果很好?你确定'硬编码'内容与克隆内容完全一样吗? – 2012-02-08 13:18:36

+0

是的。如果我手动将内容复制到滑块,它会按预期工作。如果我像上面的函数那样在'ready()'上克隆它,即使内容被克隆到正确的位置,它也不起作用。 – Nix 2012-02-08 13:43:23

+1

正如你所说,滑块初始化_before_它有内容...如果你只在所有东西都被克隆后初始化它会发生什么?我知道在某些情况下,就像jQuery的'.dialog()'一旦创建它就是它......如果你想改变它,你需要使用它的选项修饰符。 – 2012-02-08 13:50:56

回答

0

所以实际上,它可能是一个完全不同的问题,可能与我在页面上有两个相同的滑块有关。

var w = $(window).width(); 

    if (w < 769) { 

     $('#programmeList').children('article').each(function() { 
     var data = $(this).clone().html(); 
     $('#slider ul').append('<li>' + data + '</li>') 
     }); 
     initialiseSlider(); 

    } 

为什么他们的干扰,我不知道,因为他们有唯一的ID,并在同一时间未被赋予反正,但使用append()代替appendTo()帮助。