Chrome和Safari(Webkit引擎)将另外2个<li>
添加到<ul>
列表中,其中包含“jcarousle-item-placeholder”类。我该如何删除它? FF,IE和Opera中的jCarousel都可以。
感谢您的帮助。
答案 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”,找到了一个快速而又脏的问题解决方案。
导航到您的jcarousel.min.js文件
寻找(第249行):if(h.length===0){ h=this.create(e).addClass(this.className("jcarousel-item-placeholder"))
在此之后没有空格添加:.css({ "display":"none"}).attr("jcarouselindex",c);
检查Chrome,Safari,IE和FF是否应按预期工作,两个空的<li class='...jcarousel-item-placeholder...'></li>
应该消失。
我的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无法正确计算宽度,直到窗口加载为止,在这种情况下,它似乎插入了占位符项。