7

jCarousel 文档说明如下:

  • 通过将回调函数 itemLoadCallback 作为配置选项传递,您可以为内容动态创建(li) 项。
    {...}
  • jCarousel 包含一个方便的方法 add(),它可以传递要创建的项目的索引和要创建的项目的 innerHTML 字符串。

我的问题:

是否可以删除所有项目并重新绑定到新集合?

顺便说一句:我不一定需要“方便的方法”来做到这一点。我对解决方法非常开放。
仅供参考:这种策略似乎不起作用。

4

2 回答 2

8

您可以这样做,但您需要保留对轮播的引用并调用reset它。这可以通过使用initCallback传递给 jcarousel 函数的选项来实现。

function carousel_callback( carousel, state) {
    // BWA-HA...I have the carousel now....FEEL THE POWER!

    // reset empties it out
    $('#reset-caro').click( function( evt ) {
        carousel.reset();
    });

    // here's how to call add
    $('#add-to').click( function( evt ) {
        // ..this just adds to the first spot..modify as needed
        carousel.add(0, "<li>O HAI!</li>");
    });
}

$(document).ready(function() {
    $('#mycarousel').jcarousel( {
        initCallback: carousel_callback
    });
});

这是我的 HTML:

  <a id="reset-caro" href="#">reset</a>

  <a id="add-to" href="#">add</a>  

  <ul id="mycarousel" class="jcarousel-skin-tango">
    <li>MOM</li>
    <li>DAD</li>
    <li>BROTHER</li>
    <li>SISTER</li>
  </ul>
于 2009-09-03T18:55:28.313 回答
3

除上述内容外,还请指定新轮播的尺寸。

carousel.size(x);

这应该消除 IE 中的白色空框(如上所述)。

谢谢,尼克

于 2009-11-24T13:32:11.487 回答