我无法弄清楚为什么第二次点击下一步按钮不会触发roate。
$ slideNumber的值都是1 2 3或4,我使用警报让我知道情况就是这样。
它基本上不会触发rotate();在第二个
点击数字完美无缺;
//Paging + Slider Function
rotate = function () {
var triggerID = $slideNumber - 1; //Get number of times to slide
var image_reelPosition = triggerID * divWidth; //Determines the distance the image reel needs to slide
//Slider Animation
$(".image_reel").animate({
left: -image_reelPosition
}, 500);
};
//click on numbers (this one works)
$(".paging a").click(function () {
$active = $(this); //Activate the clicked paging
$slideNumber = $active.attr("rel");
rotate(); //Trigger rotation immediately
return false; //Prevent browser jump to link anchor
});
//click on next button (this one does not work)
$('#next').click(function () {
var left_indent = parseInt($('.image_reel').css('left')) - divWidth;
var slideNumberOn = (left_indent / divWidth);
var slideNumber = ((slideNumberOn * -1) + 1);
$slideNumber = slideNumber;
rotate(); //Trigger rotation immediately
return false; //Prevent browser jump to link anchor
});
HTML:
<div class="paging">
<a href="#" rel="1">one</a>
<a href="#" rel="2">two</a>
<a href="#" rel="3">three</a>
<a href="#" rel="4">for</a>
</div>
<div class="nav">
<a id="prev" class="active" href="#">prev</a>
<a id="next" class="active" href="#">next</a>
</div>
答案 0 :(得分:1)
听起来第二次点击功能在某种程度上是错误的。尝试将console.log
语句放在函数的开头。如果您可以放置它们以便打印出来并且出现下一个错误,那么您已经找到了错误的位置。
答案 1 :(得分:0)
在divWidth
点击处理程序中定义$slideNumber
和#next
的位置?因此,它会抛出错误并且永远不会到达下一个要执行的语句。