0

我正在一个网站上工作并使用 javascript 滚动文本。我正在使用计数器及其工作,但是当它通过条件语句时,它并没有隐藏 div 或保持一致。关于为什么会发生这种情况的任何想法?

谢谢!

html:

    <div id="arrow2">
        <a id="arrowRight" href="javascript:ltoggle('box');"><img alt="Arrow Right" height="auto" src="images/rightarrow.png"></a>
    </div>

    <div id="content">
        <div class="boxPosition" id="box1">
            <p>This is a destination wedding.  Come early, and stay late!</p>
        </div>

        <div class="boxPosition" id="box2">
            <p>Festivities will start on Friday, August 16th.</p>
        </div>

        <div class="boxPosition" id="box3">
            <p>The wedding will be on Sunday, August 18th late in the day, so you should plan to take Monday off!</p>
        </div>

        <div class="boxPosition" id="box4">
            <p>a</p>
        </div>

        <div class="boxPosition" id="box5">
            <p>b</p>
        </div>

        <div class="boxPosition" id="box6">
            <p>c</p>
        </div>

        <div class="boxPosition" id="box7">
            <p>d</p>
        </div>

        <div class="boxPosition" id="box8">
            <p>e</p>
        </div>

js:

    var counter = 1;
    var numBoxes = 8;

    function toggle(divName){
counter++
var ele = document.getElementById(divName + counter);
console.log(divName + counter);

if(ele.style.display == "block"){
    ele.style.display = "none";
}
else{
    ele.style.display = "block";
}
if(counter==numBoxes){
    counter = 0;
}

    }
4

2 回答 2

1

首先,在图片链接“javascript:ltoggle('box');”中找到大门“ltoggle” 未定义。看起来它应该只是“切换”。

建议将标签更改为:

    <a id="arrowRight" href="" onClick="toggle('box');return false;">

其次,JavaScript 不容易识别由 HTML 本身设置的样式。所以这条线在第一次通过时总是错误的。这是您的“不一致”问题:

    if(ele.style.display == "block")

为了解决这个问题,我相信有一个调用 js 可以用来查找已经设置的 css 样式,否则,用 js 设置它。查看此帖子: 使用 JavaScript 获取 CSS 值

回答这两个,这件事可能会起作用。

于 2013-01-31T19:51:34.890 回答
0

我立即看到两件事:您在后面缺少一个分号,counter++并且您正在引用javascript:ltoggle('box')而不是javascript:toggle('box')在您的锚点 href 中。

改变那些可以解决它吗?如果不是,您是否介意设置一个 JSFiddle 来复制问题,以便我们仔细查看?

于 2013-01-31T19:44:20.227 回答