我有一个Web应用程序(ASP.NET2.0 C#)。 在其中,我有一个包含复选框列表和按钮的div。
我想切换div观看,所以我在线获得了一些javascript代码来帮助我。
下面是代码:
<script language="javascript">
var state = 'hidden';
function showhide(layer_ref) {
if (state == 'visible')
{
state = 'hidden';
}
else
{
state = 'visible';
}
if (document.all)
{ //IS IE 4 or 5 (or 6 beta)
eval( "document.all." + layer_ref + ".style.visibility = state");
}
if (document.layers)
{ //IS NETSCAPE 4 or below
document.layers[layer_ref].visibility = state;
}
if (document.getElementById && !document.all)
{
maxwell_smart = document.getElementById(layer_ref);
maxwell_smart.style.visibility = state;
}
}
</script>
我用这种方式调用函数:
<a href="javascript://" onclick="showhide('AlertDiv');">Choose Columns</a>
当我使用这个功能时,它会显示带按钮的div,但它没有显示复选框列表....有关正在发生什么的任何想法?
谢谢。
答案 0 :(得分:2)
您是否尝试使用显示而不是可见性?
例如,而不是:
document.getElementById(layer_ref).style.visiblity = "hidden";
document.getElementById(layer_ref).style.visiblity = "visible";
使用:
document.getElementById(layer_ref).style.display = "none";
document.getElementById(layer_ref).style.display = "block";
您必须将所有对visiblity的引用替换为不仅显示getElementById版本。您还可以考虑使用jQuery来使用几行代码来处理您的场景,而且不需要onclick属性来为您提供html。
<script type="text/javascript" src="jquery-1.3.2.js">
</script>
<script type="text/javascript">
$(document).ready(function() {
$('.toggleLink').click(function(e) {
e.preventDefault();
$('#AlertDiv').toggle();
});
});
</script>
<a href="#" class="toggleLink">Choose Columns</a>
答案 1 :(得分:2)
一些建议:
asp.net ajax中的示例:
这是您的复选框:
<input type="checkbox" id="mycheck" onclick='showhide("mycheck","mylayer")' />
这是您要显示/隐藏的区域:
<div id='mylayer'>content</div>
这是你的功能:
<script language="javascript">
function showhide(checkboxid, layerid)
{
if($get(checkboxid).checked==true)
{
$get(layerid).display = "none";
}
else
{
$get(layerid).style.display = "";
}
}
</script>