我的Javascript不起作用。不知道它是函数,我是如何调用它,我使用的CSS或者是什么

时间:2013-06-02 20:25:45

标签: javascript

我的功能:

function ChangeStep(id)
{
    var i = 1;

    // hide all other tabs:
    while(i<10) {
        var divID = 'tabs' + i;
        if (divID !== null) {
            document.getElementById(divID).className += " hide";
        }
        i++;
    }

    // show this one
    document.getElementById(id).className += " show";
}

我如何称呼它:

<div id="prev"><img src="img/prv.png" onClick="ChangeStep('tabs1'); return false;"></div>
<div id="next"><img src="img/nxt.png" onClick="ChangeStep('tabs2'); return false;"></div>

我要展示/隐藏的分区:

<div id="tabs1" class="hide"><h1>Step 1</h1></div>
<div id="tabs2" class="show"><h1>Step 2</h1></div>

我的Css:

.hide { visibility: hidden; }
.show { visibility: visible; }

基本上我想要做的是:当我单击“下一个”或“上一个”时,通过隐藏所有其他人并显示它来显示相应的“选项卡”。这应该通过添加“隐藏”或“显示”类来完成,具体取决于它是隐藏还是可见。

1 个答案:

答案 0 :(得分:6)

您总是附加类名,因此它们(在显示一次之后)将成为showhide类的成员,并且两个规则集都将适用(以正常的级联顺序)。< / p>

如果您不需要维护任何其他类,则可以使用简单的作业替换追加运算符+==

如果您确实需要在元素上维护其他类,则可以使用classList代替。

document.getElementById(divID).classList.remove('show');
document.getElementById(divID).classList.add('hide');

如果您需要支持Old-IE,那么您可以使用polyfill(可能会在classList上运行正则表达式)或提供类似功能的API。最常见的JS库(例如YUI和jQuery)内置了一个。