【发布时间】:2013-03-06 03:06:58
【问题描述】:
我正在尝试编写脚本,将描述分配给轮播的“上一个”和“下一个”链接。需要根据当前幻灯片的数值从轮播项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" );
不幸的是prevslideidtext 当nextslideidtext是undefined 时,而不是返回上一个幻灯片父级的ID DIV 返回当前幻灯片父级的ID。
结果示例(当第一张幻灯片是当前幻灯片时):
currentslide = 1
prevslide = -1
nextslide = 1
prevslideidtext = features
nextslideidtext = undefined
carousel-slide 类有 6 个 DIV(上面的 HTML 代码中只显示了 3 个),但上面的 JS 脚本的行为与只有一个一样。
我做错了什么?
我不坚持使用eq();它只是在我看来是一种清晰而简单的方法来达到我需要的效果。
(我知道当传递给 eq() 的索引超出范围时,eq() 会创建新的空项目,我将对其进行排序 - 最后一张幻灯片 - 稍后)
谢谢
【问题讨论】:
-
所以如果它是第一张幻灯片.. prev 应该是最后一张吗?如果最后一张幻灯片..下一张应该是第一张吗?
-
是的,那是环形旋转木马。这就是我选择
eq()的原因,因为eg(-1)的意思是“从头到尾”。对于最后一张幻灯片,我打算将nextslide值与幻灯片总数进行比较,如果是最后一张幻灯片,只需读取第一张幻灯片父级的 ID。但是我的问题不同 - 上面的 JS 代码不能按预期工作 - 我无法获取上一张和下一张幻灯片 ID 的值。