2011-11-16 117 views
0

应该是简单明了的,但我没有得到这里的错误。简单的JavaScript显示/隐藏内容。尝试显示 - 块/无和可见性 - 显示/隐藏。不工作.. 如果所有名为npctext_X的div可见性都设置为可见,它将起作用。但我需要他们被隐藏,becouse这将是作为对话...Javascript取消隐藏内容

<script type="text/javascript"> 

function npcfunkc(karodyt,senas){ 

var showit = 'npctext_'+karodyt; 
var hideit = 'npctext_'+senas 

//document.getElementById(showit).style.display='block'; 
//document.getElementById(hideit).style.display='none'; 

document.getElementById(showit).style.visibility = 'show'; 
document.getElementById(hideit).style.visibility = 'hidden'; 
} 
</script> 


<div class='npctalk'> 

<div id='npctext_1' style='visibility:visible;'>text 1 text 1 text 1 <br /><br /> 
    <button onclick='npcfunkc(2,1)'>show 2 [hide 1] 
    </button><br /> 
    <button onclick='npcfunkc(3,1)'>show 3 [hide 1] 
    </button><br /> 
</div> 

<div id='npctext_2' style='visibility:hidden;'>text 2 text 2 text 2 <br /><br /> 
    <button onclick='npcfunkc(1,2)'>show 1, [hide 2] 
    </button><br /> 
    <button onclick='npcfunkc(3,2)'>show 3, [hide 2] 
    </button><br /> 
</div> 

<div id='npctext_3' style='visibility:hidden;'>text 3 text 3 text 3 <br /><br /> 
    <button onclick='npcfunkc(2,3)'>show 2, [hide 3] 
    </button><br /> 
    <button onclick='npcfunkc(1,3)'>show 1, [hide 3] 
    </button><br /> 
</div> 

</div> 
+0

欢迎使用stackoverflow!请参阅常见问题解答部分,了解有关标记的任何帮助。我编辑了代码缩进标记。 - http://stackoverflow.com/editing-help – Smamatti

+0

是否有一个特别的原因,为什么你不使用像YUI或jQuery的JS库? –

+0

该脚本适用于我,因为我尝试过使用display:block/none – david

回答

1

作为最佳实践和潜在的解决您的问题,您应该使用CSS类,添加或删除从这些类你的对象。

This Tutorial may help you。

+0

如何向对象中添加或删除类以隐藏或显示它们? – blankabout

+0

@blankabout最好使用类,而不是直接设置对象的样式属性。 如何实现元素的实际隐藏或显示留给开发人员来决定。 – MateusBR

+0

尽管使用CSS而不是内联样式是一种很好的做法,但您应该在回复中明确指出,从对象中添加或删除类肯定不是隐藏或显示问题的好方法。 – blankabout

0

m您正在向您的功能发送整数。尝试用这样的引号来包装它们以将它们转换为字符串....

npcfunkc("2", "1")