【发布时间】:2020-07-13 15:02:19
【问题描述】:
我有一个引导轮播,其中包含 10 个左右带有指示器的项目。指示器也是可点击的,并且可以在点击时滚动到每个项目,例如data-slide-to="1" 属性应用于元素。轮播按预期工作,没有任何问题。
我现在需要在某些情况下删除项目。当我尝试从轮播中删除当前未激活的项目时,我的 javascript 运行并且我的轮播仍然可以正常工作。
但是,如果我要删除的项目当前处于活动状态,则这是在删除项目和指示器后轮播停止工作的时候。我知道总是需要一个“活动”项目,这就是为什么我调用 carousel.('next') 如果活动项目是要删除的项目。
请有人指出我下一步需要做什么来解决这个问题的正确方向。 (此外,当我删除一个项目时,我的指示器应该会自动删除)。
任何帮助将不胜感激。
$('#Container').children().each(function (index, item) {
var id = item.id;
if (!eventData.evList.some(ev => ev.ev_no == id)) {
var carElement = $('.carousel').find('#' + id);
if ($(carElement).hasClass('active')) {
$('.carousel').carousel('next');
}
carElement.remove();
$('#' + id + 'ind').remove();
$('#evIndicators').children().each(function (index, item) {
$(item).attr('data-slide-to', index);
});
}
});
<div id="carouselIndicators" class="carousel slide pointer-event">
<ol id="evIndicators" class="carousel-indicators" style="margin-top: -50px; height: 50px; float: left;">
<li id="2245ind" data-target="#carouselIndicators" data-slide-to="0" class="active">22</li>
<li id="2315ind" data-target="#carouselIndicators" data-slide-to="1">23</li>
<li id="2345ind" data-target="#carouselIndicators" data-slide-to="2">24</li>
</ol>
<div id="Container" class="carousel-inner">
<div id="2245" class="carousel-item active">
<a id="22451" class="btn-link" href="#" onclick="showAddDialog(22451,8,1)">
<div class="runnerNum">1</div>
</a>
</div>
<div id="2315" class="carousel-item">
<a id="23151" class="btn-link" href="#" onclick="showAddDialog(23151,9,1)">
<div class="runnerNum">1</div>
</a>
</div>
<div id="2345" class="carousel-item">
<a id="23451" class="btn-link" href="#" onclick="showAddDialog(23451,10,1)">
<div class="runnerNum">1</div>
</a>
</div>
</div>
</div>
});
22:45 23:15 23:45 1 1 1【问题讨论】:
标签: javascript jquery html twitter-bootstrap carousel