调用函数在一个实例中工作但不在另一个实例中工

时间:2012-02-03 15:32:30

标签: javascript jquery

我无法弄清楚为什么第二次点击下一步按钮不会触发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>

2 个答案:

答案 0 :(得分:1)

听起来第二次点击功能在某种程度上是错误的。尝试将console.log语句放在函数的开头。如果您可以放置​​它们以便打印出来并且出现下一个错误,那么您已经找到了错误的位置。

答案 1 :(得分:0)

divWidth点击处理程序中定义$slideNumber#next的位置?因此,它会抛出错误并且永远不会到达下一个要执行的语句。