prototype的show方法

如果原来的值是display:none,执行show就没反应,看了一下代码,好象show只是把display赋成空串,css手册查了一下,并没有说明display赋成空串是什么情况

下面是测试代码 

[code="java"]

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">



<style type="text/css">
#info{
background:orange;
width:200px;
display:none;
margin:0 auto;

}

</style>
<script type="text/javascript" src="../prototype.js"></script>


aaa
<button id="btn">test</button>

<script type="text/javascript">

$("btn").observe("click",function(ev){

$('info').show(); 
});

</script>


[/code]

为你这个问题重新下了个prototype,很久没用了(07年后就没使用了)。
$("btn").observe("click",function(ev){

$('info').show();   
});  

需要改成如下代码:
$("btn").on("click", function (ev) {
Element.show("info");
});
元素的show方法是需要通过Element来使用的,show中可以带多个参数。
即使这样子修改了这里还是无法显示出来,原因在于css样式级别的覆盖问题,其实次要说一点,目前prototype库对show的实现是$(element).style.display="";这样子来处理的,所以一定程度上直接调用Element.show("info")不一定能显示出来,此时建议你修改成$("info").style.display="block";来显示.

$('info').show(); 修改成$('info').style.display='block';

[code="js"]
$('info').style.display='block';或者$('info').style.display='';都行
[/code]
建议用后者,前者某些情况下会有问题。