我写了一个函数,当span#note
被点击时显示span#note-
元素,我想默认隐藏span#note-
,但是我做不到。
我的代码:
<h1>Republic of Labrador<br>Sub-Presidential Elections <span onclick="showOnClick()" id="note" title="Not all candidates are listed, and the vote ratioes for the listed candidates are approximated.
Hover over a candidate's name to see their vote ratio.">ⓘ</span></h1>
<br>
<span id="note-">Not all candidates are listed, and the vote ratioes for the listed candidates
are approximated.<br>Hover over a candidate's name to see their vote ratio.</span>
<script>
function showOnClick() {
var x = document.getElementById("note-");
if (x.style.display === "none") {
x.style.display = "block";
} else {
x.style.display = "none";
}
}
</script>
我尝试在默认情况下隐藏span#note-
:
<span id="note-" onload="hideOnLoad()">Not all candidates are listed, and the vote ratioes for the listed candidates
are approximated.<br>Hover over a candidate's name to see their vote ratio.</span>
<script>
function hideOnLoad() {
var y = document.getElementById("note-");
y.style.display = "none";
}
function showOnClick() {
var x = document.getElementById("note-");
if (x.style.display === "none") {
x.style.display = "block";
} else {
x.style.display = "none";
}
}
</script>
我希望span#note-
在默认情况下是隐藏的。
5条答案
按热度按时间djp7away1#
你的问题是onload触发器,它在上不起作用。你需要像这样设置你的代码,在你的2个函数之后:
也就是说,将其设置为显示可能会更好:无;通过CSS或样式,并在需要时简单地显示。
6pp0gazn2#
我想你忘了调用hideOnLoad()函数,不管怎样,我想你应该使用CSS隐藏元素,方法是使用style=“display:无;"。
2fjabf4q3#
onLoad
只适用于外部资源,如图像或标签。如果您想保留第二个示例,则必须将onLoad=“hideOnLoad()”属性一直移到body标签。更简单的解决方案是将其作为元素
style="display:none;
的初始样式的一部分隐藏在html中,下面是更新了该元素的第一个示例。9avjhtql4#
默认情况下隐藏元素的最简单方法是使用CSS
display
属性你可以简单地在HTML标签中添加一个CSS规则,或者你可以按照更好的做法创建一个单独的CSS文件。
1.内联规则:
只需向标记添加一个
style
属性。2. CSS文件:
创建名为
styles.css
的单独文件。在该文件中创建规则:返回HTML文件,在文件顶部的
head
标记之间链接样式表:在CSS display上阅读更多信息。除了
display
之外,如果你想让内容占据页面上的空间,但只是不显示内容,你也可以尝试visibility属性。在您的示例中,一旦您使用了这些CSS方法之一隐藏元素,它将在页面初始加载时隐藏,然后您的
showOnClick()
脚本应该可以切换显示和关闭。3lxsmp7m5#
看起来你的代码是正确的,你只需要调用每个函数。当我像这样运行代码时,我会让它正确地工作。