空附加
  • 在 Chrome 和 Safari 中的水平 jCarousel 中
  • 发布于 2024-12-10 02:20:48 字数 205 浏览 0 评论 0原文

    Chrome 和 Safari(Webkit 引擎)将 2 个额外的

  • 添加到
      列表中,类为“jcarousle-item-placeholder”。我怎样才能删除它? jCarousel在FF、IE和Opera中都可以。
  • 感谢您的帮助。

    Chrome and Safari (Webkit engine) add 2 additional <li> into <ul> list with class 'jcarousle-item-placeholder'. How can I remove it? jCarousel in FF, IE and Opera is OK.

    Thanks for help.

    如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

    扫码二维码加入Web技术交流群

    发布评论

    需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

    评论(5

    黎歌 2024-12-17 02:20:48

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

    <script type="text/javascript">
    
           jQuery(document).ready(function () {
               jQuery('#mycarousel').jcarousel();
           });
    
    </script>
    

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

    In my case, I was adding the below code twice

    <script type="text/javascript">
    
           jQuery(document).ready(function () {
               jQuery('#mycarousel').jcarousel();
           });
    
    </script>
    

    I removed the one block and it worked for me.

    蔚蓝源自深海 2024-12-17 02:20:48

    我在 Safari 中看到过在同一个 ul 上调用 jcarousel 两次时出现此问题 - 如果您使用 CMS,这很容易做到,因为 jcarousel 可以由模块函数调用(例如 jcarousel_add()< /code> 与 Drupal 的 jcarousel 模块),您自己的模块代码包含的 js 文件,模板文件等。
    值得通过注释掉您正在使用的呼叫来排除这种可能性

    I've seen this problem occur in Safari when jcarousel is called twice on the same ul - if you are working with a CMS this can be easy to do as jcarousel could be called by a module function (e.g. jcarousel_add() with Drupal's jcarousel module), a js file included by your own module code, in a template file etc.
    It's worth excluding this as a possibility by commenting out the call you are working with

    北风几吹夏 2024-12-17 02:20:48

    我也遇到了这个问题,结果是我的结束 li 标签之一被意外地写为

  • 而不是正确的 ,这使得浏览器渲染额外的空 li 标签
  • I had this problem also, and it ended up being that one of my closing li tags was accidentally written as <li> instead of the proper </li>, which made the browser render extra empty li tags

    心如狂蝶 2024-12-17 02:20:48

    我找到了一个快速但肮脏的解决方案,通过将 css“display:none”添加到任何带有 jcarousel-item-placeholder 类的

  • 中。
    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 是否都应按预期工作,两个空

    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;
    

    I found a quick and dirty solution to the problem by adding css "display:none" to any <li> with the class jcarousel-item-placeholder.

    1. Navigate to your jcarousel.min.js file

    2. Look for (Line 249 for me): if(h.length===0){ h=this.create(e).addClass(this.className("jcarousel-item-placeholder"))

    3. Directly after this with no spaces add: .css({ "display":"none"}).attr("jcarouselindex",c);

    4. Check Chrome, Safari, IE and FF all should work as expected the two empty <li class='...jcarousel-item-placeholder...'></li> should be gone.

    Code section from my 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;
    
    幽蝶幻影 2024-12-17 02:20:48

    确保您的标签已定义高度和宽度属性,就像

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

    我在列表项上出现的几个“jcarousel-item-placeholder”类遇到类似问题一样,我没有在标签上定义宽度。我相信 DOM 已准备就绪,但图像尚未加载,因为窗口 onload 事件尚未发生。如果不声明图像的宽度,jcarousel 无法正确计算宽度,直到加载窗口,在这种情况下,它似乎会插入占位符项目。

    Make sure your tag has defined height and width attributes like so

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

    I had similar issues with several 'jcarousel-item-placeholder' classes appearing on list-items, where I did not define width on my tag. I believe the DOM was ready, but the images were not loaded yet as the window onload event had not occurred. Without declaring the width of the image, jcarousel has no way of calculating width correctly until the window is loaded and in that scenario it seems to insert placeholder items.

    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文