Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
切换Javascript在单击时返回错误_Javascript_Jquery_Css_Html - Fatal编程技术网

切换Javascript在单击时返回错误

切换Javascript在单击时返回错误,javascript,jquery,css,html,Javascript,Jquery,Css,Html,所以我试图在我的网站上建立一个菜单开放系统。但是每次我点击div来激活切换时,我都会得到这样一个“toggle\u visibility is not defined”。 我试着把脚本放在页眉和页脚,但仍然不起作用。建议 如果您想对其进行测试,请访问以下站点: 这是我正在使用的javascript: <script type="text/javascript"> <!-- function toggle_visibility(id) { var e = d

所以我试图在我的网站上建立一个菜单开放系统。但是每次我点击div来激活切换时,我都会得到这样一个“toggle\u visibility is not defined”。 我试着把脚本放在页眉和页脚,但仍然不起作用。建议

如果您想对其进行测试,请访问以下站点:

这是我正在使用的javascript:

<script type="text/javascript">
<!--
    function toggle_visibility(id) {
       var e = document.getElementById(id);
       if(e.style.display == 'block')
      e.style.display = 'none';
       else
          e.style.display = 'block';
    }
//-->
   </script>

这是HTML

<div class="user-image" href="#" onclick="toggle_visibility('menu-options');">
<img src="http://chocobento.x10.mx/wp/wp-content/uploads/2015/09/1-300x300.jpg" width="180" height="180" alt="itslino" class="avatar avatar-180 wp-user-avatar wp-user-avatar-180 alignnone photo">
</div>
<div id="menu-options">
<a href="www.google.com">Test</a></br>
Test 2
</div>


测试2
删除
如下:

<script type="text/javascript">
    //<!--
        function toggle_visibility(id) {
           var e = document.getElementById(id);
           if(e.style.display == 'block')
          e.style.display = 'none';
           else
              e.style.display = 'block';
        }
    //-->
</script>

问题是您的脚本已经在js文件中,因此您不必将代码放入
标记中。当您直接在html页面中编写js代码时,可以使用此标记。也就是说,您的menu.js文件应包含以下内容:

 function toggle_visibility(id) {
   var e = document.getElementById(id);
   if(e.style.display == 'block')
  e.style.display = 'none';
   else
      e.style.display = 'block';
}

注意:browser developer web工具对调试代码很有用,通常您可以在浏览器中按f12键来使用它(特别是在firefox或chrome中)。请参见您网站主页的示例:[[IMG]

您的脚本已被注释掉。删除注释标记您没有注意到它在menu.js的第1行上抛出的语法错误?为什么会被否决?他提供了一个解释以及相关代码。+1注释为什么会影响javascript?我在脚本中还有额外的HTML,我想添加到脚本中,我已对其进行了注释,因此不会出现错误联合国。让我试试你说的。@RachelGallenit在menu.js SyntaxError:expected expression,get'上面的语句没有返回错误,并且使脚本再次可执行。请解释下一票。我没有下一票。我删除了它,但它不起作用。由于历史原因,允许在脚本标记中使用HTML注释(当嵌入HTML时)因此问题中的代码实际上是有效的。(真正的问题是脚本标记根本就存在——如果你访问该站点,你会看到file menu.js包含那些HTML标记,这当然是无效的。)@コードバリノ 那么现在有什么问题吗?我试着用的时候效果很好。@AndrewLyndem我投你的票,我不知道当Javascript在外面的时候我不能纠正里面的HTML。我过去在这方面从来没有遇到过问题……但不管怎样。每个人都被否决了,所以你至少应该得到感谢。
 function toggle_visibility(id) {
   var e = document.getElementById(id);
   if(e.style.display == 'block')
  e.style.display = 'none';
   else
      e.style.display = 'block';
}