我有一个功能,使两个按钮。
一个按钮将自动向下滚动,而另一个按钮将向上滚动。

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

我的问题是我必须单击两次按钮才能使它工作,然后再完全不触发它。

我看不到这里有逻辑错误吗?

我想要的是箭头的作用类似于Twitter引导图像旋转。我想单击箭头,让它们带我到下一部分或上一部分。

这是页面和我要更改的箭头的屏幕截图
已删除IMG

网址已删除

抱歉,我删除了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
        }

    };
})

最佳答案

根据我在您的网站上收到的通知,在两个箭头中的任何一个第一次单击时,它都会发出“ 0 [option Option]”的警报。

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


“ ai == 0”必须为真。据我所知,这是唯一带有“ 0”的警报,也是弹出该警报的唯一原因。

除此之外,一旦您单击警报上的“确定”,箭头对我来说似乎就很好用了。

编辑
您确定要在“ if(ai == 0)”检查之前声明ai吗?
如果不是。删除警报,使代码如下所示(对于两个箭头):

    if (ai == 0) {
        ai = 1

关于javascript - 第一次点击时功能无法正确触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32011921/

10-12 03:42