Javascript 切换可见性问题

标签 javascript css toggle visibility

好吧,我正在尝试让这段 Javascript 工作。另外,我对 Javascript 完全陌生。本质上,我想做的是在我的页面左侧有一个菜单,其中包含以下链接:主页、关于、响应、脚本练习、最终元素和列出的联系人。在我的 CSS 页面上,每一个都有一个标记的 div id(即#home、#about、#response ...),并且所有这些都放置在页面上的相同位置并被隐藏。单击链接时,相应的 div id 应该在页面上可见。我使用的代码是这样的:

function show(listx) {

     home.style.visibility = "hidden"
     about.style.visibility = "hidden"
     response.style.visibility = "hidden"
     script.style.visibility = "hidden"
     project.style.visibility = "hidden"
     contact.style.visibility = "hidden"

     listx.style.visibility = "visible"

     }

function shows(listz) {

     home.style.visibility = "hidden"
     about.style.visibility = "hidden"
     response.style.visibility = "hidden"
     script.style.visibility = "hidden"
     project.style.visibility = "hidden"
     contact.style.visibility = "hidden"

     listz.style.visibility = "visible"

     } 

我根据 Felipe Bottrel Souza 1998 年发现的名为 Fade in Menu Script 的旧脚本改编了这段代码。

问题是,此脚本在 IE、Chrome 和 Safari 中有效,但在 Firefox 中无效。

非常感谢任何想法/帮助!

最佳答案

给某物一个 id 不应该在 JavaScript 中自动给它一个名字。许多浏览器这样做是为了与旧代码兼容,但正如您所注意到的那样,它不可靠,应该避免。

相反,您应该使用 document.getElementById 方法通过 id 引用元素。

例如,您可以将 home 的每个实例替换为 document.getElementById("home"),或者定义您希望首次访问的所有元素你使用它们:

var home = document.getElementById("home");

关于Javascript 切换可见性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6740897/

相关文章:

javascript - 不是把 'value'包裹在输入框里?

html - 视频不要进入我的css背景! :(

javascript - 如何映射对象数组的名称以更改字段名称?

javascript - 动态创建对象并单击其中一个对象

html - 与 Umbraco 一起控制 div 标签

javascript - jquery切换阻止 child 的点击事件

jQuery,函数内的函数目标错误的div

javascript - 如何使用RPG.JS

javascript - JavaScript 新手 : whats wrong with my mobile detection code?

toggle - 在 jQuery > 1.8 中使用什么来代替 `toggle(...)`?