gpt4 book ai didi

javascript - 引导轮播 : Uncaught TypeError: Cannot read property 'offsetWidth' of undefined

转载 作者:行者123 更新时间:2023-11-29 16:06:19 27 4
gpt4 key购买 nike

我似乎遇到了一个 Bootstrap Carousel 问题,该问题对于发布的其他问题/修复是独一无二的。这个很奇怪。

控制台错误:

Uncaught TypeError: Cannot read property 'offsetWidth' of undefined
at c.slide (https://www.somewebsite.com/js/bootstrap.min.js:6:6890)
at c.next (https://www.somewebsite.com/js/bootstrap.min.js:6:6128)
at e (https://www.nastassiafreeman.com/js/jquery.js:2:3957)

三、错误是如何触发的:

单击图像后,会弹出一个允许导航的模态/旋转木马。单击箭头时,会触发错误,无法继续下一张图片。

奇怪的事实:

当您刷新页面并重试时,成功了

我的 html 设置为只有 1 个空轮播和许多图像,请注意轮播是空的:

    <div id="carousel-example-generic" class="carousel slide" data-ride="carousel">

<!-- Wrapper for slides -->
<div class="carousel-inner" role="listbox">



</div>

<!-- Controls -->
<a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next">
<span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>

然后我的 js 文件查找点击事件,并根据点击的内容用图像填充轮播:

  if($(this).attr('id') == 'fall_A'){
$('.item').remove();
$( '.carousel-inner' ).append('<div class="item active"><img id="img1" src="img/fall_A1.png" alt="..."><div class="carousel-caption"></div></div>');
$('.item').after('<div class="item"><img id="img2" src="img/fall_A2.png" alt="..."><div class="carousel-caption"></div></div>');
$('.item').last().after('<div class="item"><img id="img3" src="img/fall_A3.png" alt="..."><div class="carousel-caption"></div></div>');
}
else if($(this).attr('id') == 'fall_B'){
$('.item').remove();
$( '.carousel-inner' ).append('<div class="item active"><img id="img1" src="img/fall_B1.png" alt="..."><div class="carousel-caption"></div></div>');
$('.item').after('<div class="item"><img id="img2" src="img/fall_B2.png" alt="..."><div class="carousel-caption"></div></div>');
$('.item').last().after('<div class="item"><img id="img3" src="img/fall_B3.png" alt="..."><div class="carousel-caption"></div></div>');
}

等等……

我已确保第一个轮播项目处于事件状态,这是对其他一些类似帖子的解决方案。真正让我感到困惑的是它间歇性地工作。我曾想过只使用另一个开源轮播,但现在我对理解的渴望让我更愿意解决这个问题,而不是希望看到它得到修复。

有什么想法吗?

最佳答案

Bootstrap Carousel 的两个项目集

1。移除 data-ride="carousel" 属性修复 JS 错误

The documentation解释:

The data-ride="carousel" attribute is used to mark a carousel as animating starting at page load

但是当您加载页面时,您的轮播仍然是空的。脚本找不到动画的项目并发生错误。

因此,删除此属性并在其中添加一些内容后运行轮播。

2。请检查我的代码。这是您想要实现的目标吗?

http://codepen.io/glebkema/pen/LbmPoX

var selectCarousel = $('#carousel-1');
var selectInner = selectCarousel.find('.carousel-inner');

$('#btn-1').click( function() {
selectInner.children('.item').remove();
selectInner.append('<div class="item active"><img src="https://via.placeholder.com/900x300/c69/f9c/?text=1" alt=""></div>');
selectInner.append('<div class="item"><img src="https://via.placeholder.com/900x300/9c6/cf9/?text=2" alt=""></div>');
selectInner.append('<div class="item"><img src="https://via.placeholder.com/900x300/69c/9cf/?text=3" alt=""></div>');
selectCarousel.carousel();
})

$('#btn-2').click( function() {
selectInner.children('.item').remove();
selectInner.append('<div class="item active"><img src="https://via.placeholder.com/900x300/c69/f9c/?text=4" alt=""></div>');
selectInner.append('<div class="item"><img src="https://via.placeholder.com/900x300/9c6/cf9/?text=5" alt=""></div>');
selectInner.append('<div class="item"><img src="https://via.placeholder.com/900x300/69c/9cf/?text=6" alt=""></div>');
selectCarousel.carousel();
})
@import url('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css');

.btn {
margin: 15px;
}
.carousel-inner img {
width: 100%;
}
<div class="container">
<button id="btn-1" type="button" class="btn btn-primary btn-lg">Items form 1 to 3</button>
<button id="btn-2" type="button" class="btn btn-primary btn-lg">Items form 4 to 6</button>

<div id="carousel-1" class="carousel slide">
<div class="carousel-inner" role="listbox">
</div>
<a href="#carousel-1" class="left carousel-control" role="button" data-slide="prev"><span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span></a>
<a href="#carousel-1" class="right carousel-control" role="button" data-slide="next"><span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span></a>
</div>
</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

关于javascript - 引导轮播 : Uncaught TypeError: Cannot read property 'offsetWidth' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40982122/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com