首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > CSS >

请真正了解javascript运行机制的朋友进来看一下,多谢了

2012-04-23 
请真正了解javascript运行机制的朋友进来看一下,谢谢了.下面的函数为一个控制树形菜单的展开和折叠的函数.

请真正了解javascript运行机制的朋友进来看一下,谢谢了.
下面的函数为一个控制树形菜单的展开和折叠的函数.如果在下面标记为 "测试行 "的行上点击可达到
展开/折叠的效果,但是速度一快的话就不行了,好像要点击两下才能实现展开或折叠,请问一下到底是
怎么搞的?谢谢各位了.
<script   language= "javascript ">
var   on_off=0;
function   close_open(new_obj)
{         var   obj;
  var   temp=0;
  obj=document.getElementById(new_obj);
  if(on_off==0)
  {       obj.style.display= "none ";
temp=0;
}  
  if(on_off==1)
      {obj.style.display= "block ";
              temp=1;
      }
  if(temp==0)
  on_off=1;
  else
  on_off=0;
 
}
<table>
<tr   onclick= "on_off( 'ASP ') "> <td> 展开/折叠 </td> </tr>     //此行标记为:测试行
<tr> <td>
<table   id= "ASP "> <tr> <td> 菜单项一 </td> <td> 菜单项二 </td> </tr> </table>
</td> </tr>
</table>


[解决办法]
1.首先你给的代码有问题,不知道你自己试过没有
2.你点击的时候,页面是否已经完成加载完成了?
[解决办法]
2.你点击的时候,页面是否已经加载完了?
[解决办法]
<html>
<head>
<title> dd </title>

<script language= "javascript ">
var on_off=0;
function close_open(new_obj)
{
var obj;
var temp=0;
obj=document.getElementById(new_obj);
if(on_off==0)
{
obj.style.display= "none ";
temp=0;
}
if(on_off==1)
{
obj.style.display= "block ";
temp=1;
}
if(temp==0)
on_off=1;
else
on_off=0;

}
</script>
</head>
<body>
<table>
<tr onclick= "close_open( 'ASP ') "> <td> 展开/折叠 </td> </tr>
<tr> <td>
<table id= "ASP "> <tr> <td> 菜单项一 </td> <td> 菜单项二 </td> </tr> </table>
</td> </tr> </table>
</body>
</html>

[解决办法]
我没仔细体会你的代码 不过给我的第一感觉是:很可能你的代码中有重复置1或者置0的情况。

也就是说on_off这样的tag可能在你连续两次点击的情况下处于同一状态(1或0),你可以alert on_off试试~~

待会有时间我帮你测试一下^_^
[解决办法]
你试一下下面这个代码,目前我已经明白你的意思了,但现在我也不明白其中的原因,从页面中的反应来看,是两次的间隔太短,并没有触发JS的函数.


<html>
<head>
<title> dd </title>

<script language= "javascript ">
var m=0;
var on_off=0;
function close_open(new_obj)
{
m++;
var t=document.getElementById( "dd ").innerHTML=m;
var obj;
var temp=0;
obj=document.getElementById(new_obj);
if(on_off==0)
{ obj.style.display= "none ";
temp=0;
}
if(on_off==1)
{obj.style.display= "block ";
temp=1;
}
if(temp==0)
on_off=1;
else
on_off=0;

}
</script>
</head>
<body>


<table>
<tr onclick= "close_open( 'ASP ') "> <td> 展开/折叠 </td> </tr>
<tr> <td>
<table id= "ASP "> <tr> <td> 菜单项一 </td> <td> 菜单项二 </td> </tr> </table>
<table > <tr> <td id= "dd "> 0000000 </td> </tr> </table>
</td> </tr> </table>
</body>
</html>

[解决办法]
你的问题可能就是出在你所说的快一点点击了,在响应函数中再添加一个双击响应事件就可以了

<tr onclick= "close_open( 'ASP ') " ondblclick= "close_open( 'ASP ') " > <td> 展开/折叠 </td> </tr>

[解决办法]
测试了一下,你的代码没有问题,没有相应很可能就是在双击和单击的反应速度上了。。

热点排行