【问题标题】:HTML carousel with jQuery doesn't change image带有jQuery的HTML轮播不会改变图像
【发布时间】:2018-06-01 20:59:35
【问题描述】:

我正在尝试使用来自 servlet 的一些图像制作一个轮播。我设法创建了轮播,但图像没有改变。始终是数组中的第一个图像。我确实从 din 文章中获得了代码:Bootstrap Carousel not working after adding items dynamically with jQuery。但我不允许对文章发表评论。 :(

<div class="container-fluid">
    <div id='myContent'></div>
</div>
<p>${offer.toString()}</p>
<script
    src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script
    src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script type="text/javascript">
    $(function() { 
     wrapper = $('#myContent'),
     carousel = $('<div/>', { id: "theCarousel3", "class": "carousel slide multi-item-carousel",
         append:'<div class="carousel-inner"></div><a class="left carousel-control" href="#theCarousel3" data-slide="prev"></a><a class="right carousel-control" href="#theCarousel3"data-slide="next"></a>' }), 
     carouselInner =carousel.find('.carousel-inner').eq(0); wrapper.append(carousel);
    carousel.carousel(); for (var i = 0; i <${houseImages.size()}; i++) {
    imgElement = $('<div />', { "class": "item" + (i ? '' : ' active'),
        append: $('<div/>', { "class": 'col-lg-4', append: $('<img/>', {
          src:'data:image/jpg;base64,${houseImages.get(i)}', id: 'img' + i,
          "class": 'img-responsive',
          height: 300
        })
      })
    })
    carouselInner.append(imgElement);
  }
})
</script>

更新:我使用 owlcarousel。

【问题讨论】:

  • 如果你想让人们看到它,来吧伙伴格式化你的代码。至少接通prettier.io/playground。需要 2 秒。
  • 对不起。现在好点了吗?
  • 它在我看来是一样的。

标签: javascript html css jstl


【解决方案1】:

您需要将第一张幻灯片设置为活动类。

尝试改变这个:

"class": "item" + (i ? '' : ' active')

"class": "item" + (i == 0 ? ' active' : ''),

【讨论】:

  • 我做到了。仍然无法正常工作...在浏览器控制台中,当我按左或右时,类 div 正在发生变化。所以也许这不是问题所在......
  • 我将您的代码放入 jsfiddle 中,它可以工作,看:jsfiddle.net/xpxzyock/1 我只是更改了 src 路径和 ${houseImages.size()} 为“5”。因此,如果您可以看到图像,则问题出在此代码上。尝试从您的代码中删除其他 css 样式,只保留 bootstrap.css。
  • 我没有其他的css样式。当我像这样在 jstl 标签中显示图像时: 我可以看到所有的图像。
  • 所以,运行您的代码并将生成的 html 放在这里。
  • 这里:codeshare.io/axbkwX。确实是一些 css 样式,但来自我包含的另一个页面。我试图抹去她,但没有改变任何东西。
【解决方案2】:

此外,${houseImages.size()} 未在您的 sn-p 中定义,因此您的循环根本没有运行。

【讨论】:

  • 在浏览器控制台中我可以看到我可以看到它的值。是一个jstl变量。或者也许我错了。能否请您提供一些细节?
  • 您上传的代码不再包含此功能,因此我认为它不再相关。
  • 但是您的代码确实包含两个 body-tags 并且 myContent-id 被使​​用了两次。尝试将其分别减少为一个元素,它应该可以工作:)
  • 谢谢!我纠正了身体的错误。你能告诉我你的意思是“myContent-id 被使​​用了两次”吗?
  • 我发现了以下内容: - 每个人都可以从代码共享中编辑代码(我将所有内容都剪切到我的编辑器中,但现在将其反转) - 你在第 109 行和第 256 行中有 myContent-id -您在第 116、118、120、263、265 和 267 行中有 image-id - 您正在加载 jQuery 1.11.0(第 3 和 154 行)和 2.1.1(第 123 和 270 行) - 您正在加载引导程序3.3.7 两次,但每次都是同一个版本(因此没有真正的冲突)
猜你喜欢
  • 1970-01-01
  • 2016-08-07
  • 1970-01-01
  • 1970-01-01
  • 2014-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多