Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 调用函数在一个实例中有效,但在另一个实例中无效_Javascript_Jquery - Fatal编程技术网

Javascript 调用函数在一个实例中有效,但在另一个实例中无效

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

我一辈子都不明白为什么第二次单击“单击下一步”按钮不会触发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 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>