这是最奇怪的。
首先:我怀疑它与我的机器有关。
我的问题很简单,我无法在第一次点击时触发有条件的雄蕊。在第一次点击之后,一切都很好并按原样运作。这只适用于我最近写的内容,所有带有类似语句的旧文件都可以正常工作,可以从3个学校复制和粘贴,没有任何问题。
如果我删除条件语句,事情按预期工作,例如,如果我将单个语句放在标签onclick事件中,它在第一次单击时起作用,对于简单函数而不是条件语句也是如此。我有下面的测试代码虽然我不确定它是否会有用,因为我知道代码工作并认为第一次单击找到该功能但不会触发它。正如代码所示,我尝试了几个具有相同结果的事件。
<script type="text/javascript">
function test() {
var test=document.getElementById('test');
if (test.style.visibility=="visible") {
alert("yes");
}
else {
test.style.visibility="visible";
}
}
</script>
</head>
<body>
<h1 id="test">Hello World You dumbass!</h1>
<button type="button" onmouseup="test()">test</button>
<input type="button" onclick="test()" value="text">
有些东西发霉了,我找不到它。任何智能的想法都会受到最高的评价,并且验证编码对其他人的做法也是如此,这也会有所帮助。如果它可能与我的机器上的文本编码有关,我会受伤,尽管所有其他地方的代码都可以产生strang结果,如果应用某种文本格式,就像在MS Word中编写代码一样。
由于
下面的答案击中了头上的钉子或返回true。 为了使这项工作在标记中没有声明的样式,条件就像这样写
<script type="text/javascript">
function test() {
var test=document.getElementById('test');
if (test.style.visibility=="") {
test.style.visibility="hidden";
}
else {
test.style.visibility="";
}
}
</script>
</head>
<body>
<h1 id="test">Hello World You dumbass!</h1>
<button type="button" onmouseup="test()">test</button>
<input type="button" onclick="test()" value="text">
我应该抓住这个,但这就是他们假设的结果,就像我假设的那样,因为风格是在头部声明属性转移到元素,但事实并非如此。 希望这可以帮助别人避免我刚刚经历的头痛。
答案 0 :(得分:6)
如果你调试你的函数,你会发现第一次运行时test.style.visibility
没什么,因为这个css属性最初没有设置为你的元素的任何东西。因此,您的第一次运行会进入else
,然后设置此属性。现在,由于您在第一次运行中将值设置为“可见”,因此每次后续运行都会发出警报。