我正在尝试编写脚本,将描述分配给轮播的“上一个”和“下一个”链接。需要根据当前幻灯片的数值从轮播项目ID属性中读取描述(可以通过轮播API访问-见第一行JS代码-返回从1开始的轮播项目的数值)
HTML:
<div id="carousel-wrapper" class="content-promo carousel-wrapper>
<div class='wrapper'>
<div id='features' class=' ccm-block-styles'>
<div id='slide-1' class='carousel-slide'>
<!-- SOME CONTENT -->
</div>
</div>
<div id='lifestyle' class=' ccm-block-styles'>
<div id='slide-2' class='carousel-slide'>
<!-- SOME CONTENT -->
</div>
</div>
<div id='food-&-drink' class=' ccm-block-styles'>
<div id='slide-3' class='carousel-slide'>
<!-- SOME CONTENT -->
</div>
</div>
</div> <!-- End of .wrapper -->
</div> <!-- End of #carousel-wrapper -->
JS:
currentslide = $( ".carousel-wrapper" ).rcarousel( "getCurrentPage" );
prevslide = currentslide - 2; // as eq() counts from 0
prevslideidtext = $(".carousel-slide").eq( prevslide ).parent().attr( "id" );
nextslide = currentslide;
nextslideidtext = $(".carousel-slide").eq( nextslide ).parent().attr( "id" );
不幸的是,当isprevslideidtext
时,DIV 不是返回上一张幻灯片父级的 ID,而是返回当前幻灯片父级的 ID 。nextslideidtext
undefined
结果示例(当第一张幻灯片是当前幻灯片时):
currentslide = 1
prevslide = -1
nextslide = 1
prevslideidtext = features
nextslideidtext = undefined
有 6 个带carousel-slide
类的 DIV(上面的 HTML 代码中只显示了 3 个),但上面的 JS 脚本的行为与只有一个一样。
我做错了什么?
我不坚持使用eq();
它只是在我看来是一种清晰而简单的方法来达到我需要的效果。
(我知道当传递给 eq() 的索引超出范围时, eq() 会创建新的空项目,我将对其进行整理 - 最后一张幻灯片 - 稍后)
谢谢