Javascript 调用函数在一个实例中有效,但在另一个实例中无效
我一辈子都不明白为什么第二次单击“单击下一步”按钮不会触发roate $slideNumber和$slideNumber的值都是1、2、3或4,我使用了alert让我知道情况就是这样 它基本上不会触发旋转();在第二个 单击数字1可以完美地工作Javascript 调用函数在一个实例中有效,但在另一个实例中无效,javascript,jquery,Javascript,Jquery,我一辈子都不明白为什么第二次单击“单击下一步”按钮不会触发roate $slideNumber和$slideNumber的值都是1、2、3或4,我使用了alert让我知道情况就是这样 它基本上不会触发旋转();在第二个 单击数字1可以完美地工作 //Paging + Slider Function rotate = function () { var triggerID = $slideNumber - 1; //Get number of times to slide var
//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:
在中定义的divWidth
和$slideNumber
在哪里
单击处理程序?正因为如此,它会抛出错误,并且永远不会到达下一个要执行的语句。听起来第二个click函数在部分执行中出错了。尝试将console.log
语句放在函数的开头。如果您可以将它们放置在一个打印和下一个错误的位置,那么您就找到了错误所在。您是否可以验证1)正在调用非操作实例,2)$slideNumber
是否具有正确的值?使用全局变量几乎总是一个坏主意。您应该将$slideNumber
和divWidth
作为参数传递。如果不起作用,是否意味着该函数未被调用?“下一步”按钮的html是什么样子的?在屏幕上摆弄一下,如果我发出警报,我可以确认警报是正确的($slideNumber);这是我想要的数字1、2、3或4,与第一个值相同。添加的HTMLTHES设置在我的代码之前,$slideNumber确实会提醒我需要发生的值,在这种情况下,它会1、2、3或4完美地发现问题所在。基本上,一些代码在寻找$active.attr(“rel”);由于第二次单击没有此功能,因此不会运行
<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>