第一次单击时功能无法正确触发

时间:2015-08-14 13:59:08

标签: javascript jquery html arrays logic

我有一个功能,可以制作两个按钮。 一个按钮将自动向下滚动,另一个按钮向上滚动。

它通过一个数组并在每次点击时更改按钮。

我的问题是我必须单击按钮两次以使其工作,然后它就不会被触发。

这里是否存在逻辑错误我没有看到?

我希望它的箭头像twitter bootstrap图像carousal一样。我想点击箭头,让他们带我到下一个或上一个部分。

这是我试图更改的页面和箭头的屏幕截图 IMG REMOVED

删除网址

抱歉,我删除了img和url,但由于此网站尚未生效,因此不应该这样看待。我虽然在泡菜。

我解决了这个问题。如果您有类似的评论,请阅读评论。 谢谢大家!

$(function () {
    var leftArrow = $('#left-arrow')
    var rightArrow = $('#right-arrow')




    rightArrow.bind("tap", rightTapHandler)
    function rightTapHandler(event){
        if (ai == 0) {
            alert('0' + event)
            ai = 1
            controllerContainer.innerHTML = linkArrayForwards[ai] + '<div id="right-arrow" class="arrow"></div></a>' + linkArrayForwards[0] + '<div id="left-arrow" class="arrow"></div></a>';
            return 
        } else if (ai > 0) {
            alert(ai)
            ai++
            controllerContainer.innerHTML = linkArrayForwards[ai] + '<div id="right-arrow" class="arrow"></div></a>' + linkArrayForwards[ai - 1] + '<div id="left-arrow" class="arrow"></div></a>';
            return                    
        } else if (ai >= linkArrayBackswards.length) {
            ai = linkArrayBackswards.length;
            controllerContainer.innerHTML = linkArrayForwards[ai] + '<div id="right-arrow" class="arrow"></div></a>' + linkArrayForwards[ai - 1] + '<div id="left-arrow" class="arrow"></div></a>';
            return 
        }  else {
            alert('nothin')
            return false
        }


    };
    leftArrow.bind("tap", leftTapHandler)
    function leftTapHandler(event) {
        if (ai == 0) {
            alert('0' + event)
            ai = 1
            controllerContainer.innerHTML = linkArrayBackswards[ai] + '<div id="right-arrow" class="arrow"></div></a>' + linkArrayBackswards[0] + '<div id="left-arrow" class="arrow"></div></a>';
            return 
        } else if (ai > 0) {
            alert(ai)
            ai--
            controllerContainer.innerHTML = linkArrayBackswards[ai] + '<div id="right-arrow" class="arrow"></div></a>' + linkArrayBackswards[ai - 1] + '<div id="left-arrow" class="arrow"></div></a>';
            return 
        } else if (ai >= linkArrayBackswards.length) {
            ai = linkArrayBackswards.length;
            controllerContainer.innerHTML = linkArrayBackswards[ai] + '<div id="right-arrow" class="arrow"></div></a>' + linkArrayBackswards[ai - 1] + '<div id="left-arrow" class="arrow"></div></a>';
            return 
        } else {
            return false
        }

    };
})

1 个答案:

答案 0 :(得分:1)

根据我在您网站上发布的内容,它会提醒&#34; 0 [选项选项]&#34;在第一次点击两个箭头中的任何一个时。

    if (ai == 0) {
        alert('0' + event)
        ai = 1

&#34; ai == 0&#34;必须是真的..这是&#34; 0&#34;据我所知,在它和唯一的原因它会弹出警报见。

除此之外,一旦你在警报上点击确定,箭头似乎对我来说完全没问题。

修改
你确定你在&#34; if(ai == 0)&#34;之前宣布ai。校验? 如果你不是。删除警报,使代码看起来像这样(对于两个箭头):

    if (ai == 0) {
        ai = 1