javascript重置中的标签

时间:2010-09-05 14:04:07

标签: javascript

对不起,对于树木来说,这可能是愚蠢的木材,但是:

我想要的只是一个带有几个链接的div - 您点击链接然后切换到另一个div。标准标签的东西。而已。但是当我运行下面的代码时,它会切换到我想要的div然后直接重置为原始div。为什么呢?

Javascript:

number_of_pages = 4;  
function cyber(page)
{  
    for(i = 1; i <= number_of_pages; i++)  
    {  
        off = 'monitor' + i;  
        document.getElementById(off).style.display = 'none';  
    }  
    on = 'monitor' + page;  
    document.getElementById(on).style.display = 'block';  

    alert(on); //debug  
}

CSS:

.monitor{width: 400px; border: 1px solid #333; padding: 10px 10px 10px 10px}

HTML:

<div class="monitor" id="monitor1" style="display: block">  
<a href="" onclick="cyber(2)">foo</a><br />  
<a href="" onclick="cyber(3)">bah</a><br />  
</div>  

<div class="monitor" id="monitor2" style="display: none">
<a href="" onclick="cyber(1)">homepage</a>
</div>

等...

非常感谢提前。

1 个答案:

答案 0 :(得分:3)

这是因为浏览器实际上遵循href=""指令,即在执行javascript后立即重新加载当前页面。您需要return false处理程序onclick以阻止浏览器强制使用href

number_of_pages = 4;  
function cyber(page)
{  
    for(i = 1; i <= number_of_pages; i++)  
    {  
        off = 'monitor' + i;  
        document.getElementById(off).style.display = 'none';  
    }  
    on = 'monitor' + page;  
    document.getElementById(on).style.display = 'block';  

    alert(on); //debug

    return false;
}