javascript - 在鼠标单击时使用 javascript 隐藏元素并在第二次单击时显示

标签 javascript class

CSS:

ol{display: block;} // display: ""; throws an error in the console(FF)

HTML:

<!DOCTYPE html>
<html>
<head><script type="text/javascript">!js is here!</script>
<body>
<h2>Title</h2>
<input type="button" id="btn" value="expand" />
<ol>
    <li>Value 1</li>
    <li>Value 1</li>
    <li>Value 1</li>
</ol>
</body>
</html>

Javascript://尝试暂时隐藏元素

window.onload = function() {
    function expand() {
        var ol = document.getElementByTagName('ol');
        ol.style.display('none');
    }
    function init() {
        var btn = document.getElementById('btn');
        btn.addEventListener('click', expand, false);
    }
}

我一直在上下搜索类似的东西,我发现的所有东西都使用了一个额外的库(utility.js、jquery 等),但出于学习目的,我想用纯 JS 来做。

每个在线来源都引用了 element.className = "newClass";。我通过创建类 .hide{display: none;}.show{display: "";} 来尝试,但它似乎没有做任何事情。然后我切换到操纵样式 (element.style.display("none");),但这似乎也不起作用。

最佳答案

由于您的 JavaScript 在元素加载到 DOM 之前出现,因此您需要等到窗口加载完毕(或文档准备就绪,此代码段中未显示),然后再将事件监听器添加到按钮。

window.addEventListener('load', function() {
  document.getElementById('btn').addEventListener('click', function(e) {
    var style = document.getElementsByTagName('ol')[0].style;
    style.display = (style.display == 'none') ? 'block' : 'none';
  }, true);
}, true);

要切换显示,您可以使用 display CSS 属性设置为 block 作为 block 元素显示,或 none 不显示完全显示。

关于javascript - 在鼠标单击时使用 javascript 隐藏元素并在第二次单击时显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13249849/

相关文章:

javascript - 我应该/必须导出 Javascript ES6 中另一个导出类返回的返回类吗?

java - 将 JPanel 传递给 CardLayout 时出现 NullPointerException

javascript - Ionic - 什么时候应该调用 ionicModal.remove()? [Ionic Modal 隐藏回调]

Javascript 日历

javascript - 扩展标记时传单未获取所有数据

java - 如何使一个类方法与数组中的另一个类方法一起使用?

c++ - 访问对象的变量减慢程序 (C++)

javascript - 如何在同一个 Polymer 元素中扩展多个 mixin?

javascript - 函数内容执行不按顺序

javascript - jQuery UI 自动完成在 Firefox 中有效,但在 IE 中无效