猿问

为什么我的效果是只能展开不能收起呢

<!doctype html>

<html>

<head>

    <meta charset="UTF-8">

<title>Document</title>

  <style>

    #zhibo{width:600px;height:auto;margin:0 auto;background:red;padding:10px;}


  </style>


</head>

<body>

<input type="button" value="切换" id="btn" onClick="showdiv()"/>

<div id="zhibo">

  <p>我按你</p>

  <p>nimazhale</p>

   <div id="yin" style="display:none">

<p>九尾</p>

<p>哈佛和</p>

</div>

</div> 

<script>


 function showdiv(){

  var cc=document.getElementById('yin');

  var ccc=document.getElementById('btn');

  cc.style.display="block";

  ccc.value="展开";

  ccc.onClick="hidediv()";

 };

 

 

 function hidediv(){

     var cc=document.getElementById('yin');

  var ccc=document.getElementById('btn');

  cc.style.display="none";

  ccc.value="切换";

  ccc.onClick="showdiv()";

 };

</script>

</body>

</html>


s10143129
浏览 2252回答 7
7回答

逆光之羽

不能收起是因为ccc.onClick="hidediv()";和ccc.onClick="showdiv()";这两段代码没有实现修改click事件的关系;js的点击事件是小写的onclick不是onClick;你这段错误的语句正好相当于自定义了一个onClick属性然后给属性赋了一个字符串的值;代码本身是符合语法的,所以JS文件正常执行了,但是和你想的效果不一样所以你怎么点击都是只触发showdiv()这个函数,然后不断给onClick属性赋值修改代码的话用二楼的办法就能绑定成功或者改成ccc.onclick=hidediv;也行

echo_kinchao

函数不对啊

qq_安伊偌拉_0

ccc.onClick="hidediv()";是你自己造的吗?应该这样:在showdiv里面:  ccc.removeEventListener("click", showdiv, false);  ccc.addEventListener("click", hidediv, false);在hidediv里面: ccc.removeEventListener("click", hidediv, false);  ccc.addEventListener("click", showdiv, false);

犇犇大卵

命名规范点

qq_小鱼肉_0

你点击事件只会执行一个函数 ,若要调用内部函数应该另外写

qq_小鱼肉_0

你写的代码 很难看懂, ccc.onClick="hidediv()";去掉啊  
随时随地看视频慕课网APP
我要回答