非常不寻常的JavaScript行为
这是我已经用了很多年的东西,突然我有了这些奇怪的行为,也许有人知道为什么?这是我的HTML:非常不寻常的JavaScript行为,javascript,html,Javascript,Html,这是我已经用了很多年的东西,突然我有了这些奇怪的行为,也许有人知道为什么?这是我的HTML: <div class="tooltip" id="tooltip"></div> <input type="button" name="hide" value="hide" onclick="hide('tooltip');" /> <input type="button" name="show" value="show" onclick="show('too
<div class="tooltip" id="tooltip"></div>
<input type="button" name="hide" value="hide" onclick="hide('tooltip');" />
<input type="button" name="show" value="show" onclick="show('tooltip');" />
您需要将显示类型设置回块:
<script type="text/javascript">
function hide(id)
{
document.getElementById(id).style.display = 'none';
}
function show(id)
{
document.getElementById(id).style.display = 'block';
}
</script>
函数隐藏(id)
{
document.getElementById(id).style.display='none';
}
功能显示(id)
{
document.getElementById(id).style.display='block';
}
当我复制粘贴您的代码并将其加载到google chrome中时,效果非常好。您可能在原始页面中输入了一个错误。我认为display=“none”的反面是display=“inline”或display=“block”,具体取决于您希望它的显示方式。我看不出您编写的代码有什么特别的错误,但您可能希望尝试在show函数中将display设置为“block” 似乎没有任何明显的迹象表明这项工作不正常。我猜可能存在某种类型的输入错误、未关闭的标记或函数等。请尝试向这两个函数添加alert()
,以查看函数是否被正确调用
编辑:
根据您对问题的最新编辑,我倾向于页面上有另一个具有相同ID的项目。请参阅
还有一件事要尝试:在显示
功能中,设置显示
属性后,尝试在显示
属性上执行警报
,以查看其实际设置为:
alert(document.getElementById(id).style.display);
正如其他人所说,在显示时,您可能希望切换到“块”。除此之外,如果默认情况下它是隐藏的,则必须通过内联样式隐藏它。如果使用外部css文件中的代码将其隐藏,则无法使用javascript再次显示它。我敢打赌,有两个元素的ID为“tooltip”
display='block'
东西-可能您的css为类指定了display='none'
。工具提示
alert()
测试代码,或者使用一些调试器并在show()
函数中设置断点我认为你的代码是有效的。但是您的tooptip DIV中没有任何内容,这就是为什么您觉得该DIV没有显示的原因 在你的分区里写点东西 第二部分,我的意思是单击隐藏按钮heides本身。
这似乎是不可能的,就像您的代码中所显示的那样。因为您使用的是Firefox,所以您可以查看Firefox的“错误消息控制台”。打开工具并从中进行选择。从这里,您可以看到JavaScript失败的地方,如果失败的话。您可以尝试在函数块的末尾,右大括号之后加上分号
我发现如果没有它们,我的函数就不能正常工作,并且有非常不寻常的行为。
display='
可以正常工作。这就像有一个CSS规则没有指定display
属性(而在设置display='none'
的情况下,它是指定的)。尽管根据测试用例描述,这根本不是发生的事情。没关系。OP的脚本在Firefox 3.5中对我起作用,但实际上我会使用display=“bock”来实现,就像这里的高级椰子一样。然后getElementById()
每次调用时都会返回相同的脚本。毕竟这是确定的:)Jauco,不,我不,我只是复制/粘贴在这里是的,我的意思是在整个页面上。像一个不正确嵌套的标签或另一个具有相同ID的项目。从接受的答案中,我推断最后一个就是这种情况。我选中了“将其设置为块”,并且在tolltip css中没有显示设置,只有高度、宽度和背景没有显示设置使用w3验证程序()并确保您的标记有效…然后回来告诉我们。您将答案标记为已接受。到底是什么解决了这个问题?是的,下面这篇文章就是解决方案。
<script type="text/javascript">
function hide(id)
{
document.getElementById(id).style.display = 'none';
}
function show(id)
{
document.getElementById(id).style.display = 'block';
}
</script>
alert(document.getElementById(id).style.display);