在Chrome和Safari中的水平jCarousel中清空其他<li> </li>

时间:2011-10-17 15:48:30

标签: jquery google-chrome safari jcarousel

Chrome和Safari(Webkit引擎)将另外2个<li>添加到<ul>列表中,其中包含“jcarousle-item-placeholder”类。我该如何删除它? FF,IE和Opera中的jCarousel都可以。

感谢您的帮助。

6 个答案:

答案 0 :(得分:4)

就我而言,我两次添加以下代码

<script type="text/javascript">

       jQuery(document).ready(function () {
           jQuery('#mycarousel').jcarousel();
       });

</script>

我删除了一个块,它对我有效。

答案 1 :(得分:2)

在我用来调用jcarousel的js文件中将$(document).ready更改为$(window).load对我有效。

不幸的是,这个解决方案确实会影响javascript的加载方式,但最好是两个空的li

可以找到对$(document).ready$(window).load之间差异的引用here on stackoverflow

答案 2 :(得分:1)

我在Safari中看到这个问题发生在同一个ul上调用两次jcarousel时 - 如果你正在使用CMS这很容易做到,因为jcarousel可以被模块函数调用(例如{{1}使用Drupal的jcarousel模块),您自己的模块代码包含的js文件,模板文件等。 通过评论您正在使用的电话

来排除这种情况是值得的

答案 3 :(得分:0)

我也遇到了这个问题,结果是我的一个结束li标记被意外写为<li>而不是正确的</li>,这使得浏览器渲染得更多空li标签

答案 4 :(得分:0)

我通过使用类jcarousel-item-placeholder向任何<li>添加css“display:none”,找到了一个快速而又脏的问题解决方案。

  1. 导航到您的jcarousel.min.js文件

  2. 寻找(第249行):if(h.length===0){ h=this.create(e).addClass(this.className("jcarousel-item-placeholder"))

  3. 在此之后没有空格添加:.css({ "display":"none"}).attr("jcarouselindex",c);

  4. 检查Chrome,Safari,IE和FF是否应按预期工作,两个空的<li class='...jcarousel-item-placeholder...'></li>应该消失。

  5. 我的jcarousel.min.js的代码部分:

    Line 248...
    if(h.length===0){
    h=this.create(e).addClass(this.className("jcarousel-item-placeholder"))
    
    //Code to add start
    .css({
    "display":"none"
    }).attr("jcarouselindex",c);
    //Code to add end
    
    if(j.length===0)this.list.prepend(h);else j[d?"before":"after"](h);
    if(this.first!==null&&this.options.wrap=="circular"&&this.options.size!==null&&(e<=0||e>this.options.size))j=this.get(this.index(e)),j.length&&(h=this.add(e,j.clone(!0)))
    }
    j=h;
    

答案 5 :(得分:0)

确保您的代码已定义高度和宽度属性,如此

<img src="images/test.png" height="100" width="100" alt="test" />

我在list-items上出现的几个'jcarousel-item-placeholder'类有类似的问题,我没有在我的标签上定义宽度。我相信DOM已经准备就绪,但由于没有发生窗口onload事件,因此图像尚未加载。在没有声明图像宽度的情况下,jcarousel无法正确计算宽度,直到窗口加载为止,在这种情况下,它似乎插入了占位符项。