首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数在第一次单击时未正确触发

函数在第一次单击时未正确触发
EN

Stack Overflow用户
提问于 2015-08-14 21:59:08
回答 1查看 60关注 0票数 0

我有一个制作两个按钮的函数。一个按钮将自动向下滚动,另一个按钮将自动向上滚动。

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

我的问题是,我必须点击按钮两次才能让它工作,然后它根本不会被解雇。

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

我希望它的箭头表现得像twitter bootstrap image carousal一样。我想单击箭头,让它们将我带到下一节或上一节。

这是一个截图的页面和箭头,我试图改变IMG删除

已删除URL

对不起,我删除了img和url,但由于这个网站还没有上线,它不应该被那样查看。不过,我当时很为难。

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

代码语言:javascript
复制
$(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
        }

    };
})
EN

回答 1

Stack Overflow用户

发布于 2015-08-14 22:40:49

根据我在您网站上的通知,第一次单击两个箭头中的任何一个时,它都会提示"0option Option“。

代码语言:javascript
复制
    if (ai == 0) {
        alert('0' + event)
        ai = 1

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

除此之外,一旦你点击了警报上的OK,箭头看起来对我来说工作得很好。

编辑

您确定要在"if (ai == 0)“检查之前声明ai吗?如果不是这样,请删除警告,使代码看起来像这样(对于两个箭头):

代码语言:javascript
复制
    if (ai == 0) {
        ai = 1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32011921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档