[英]Why does my button need to be clicked twice for the event handler to work the first time, but thereafter just once?
我希望访问者能够展开/折叠某些部分,并且正在使用:
<input onclick="return toggleDiv('xx')"
type="button"
class="button"
value="click here to expand/collapse"/>
在我有这个功能:
function toggleDiv(a){
var e=document.getElementById(a);
if(!e)return true;
if(e.style.display=="none"){
e.style.display="block"
} else {
e.style.display="none"
}
return true;
}
第一次单击按钮不起作用,后续单击(在任何按钮上)工作正常。
这里有相关对话: 按钮需要点击两次才能触发功能
但我不明白答案(太技术性;-),有人可以帮忙解释一下吗?
我希望访问者能够扩展/折叠某些部分,并且正在使用:
<input onclick="return toggleDiv('xx')"
type="button"
class="button"
value="click here to expand/collapse"/>
并且在我有功能:
function toggleDiv(a){
var e=document.getElementById(a);
if(!e)return true;
if(e.style.display=="none"){
e.style.display="block"
} else {
e.style.display="none"
}
return true;
}
第一次单击一个按钮不起作用,随后的单击(在任何一个按钮上)都可以正常工作。
这里有相关的对话: 需要单击两次按钮才能触发功能
但我不明白答案(技术性太强;-),有人可以帮忙解释一下吗?
我希望访问者能够扩展/折叠某些部分,并且正在使用:
<input onclick="return toggleDiv('xx')"
type="button"
class="button"
value="click here to expand/collapse"/>
并且在我有功能:
function toggleDiv(a){
var e=document.getElementById(a);
if(!e)return true;
if(e.style.display=="none"){
e.style.display="block"
} else {
e.style.display="none"
}
return true;
}
第一次单击一个按钮不起作用,随后的单击(在任何一个按钮上)都可以正常工作。
这里有相关的对话: 需要单击两次按钮才能触发功能
但我不明白答案(技术性太强;-),有人可以帮忙解释一下吗?
我希望访问者能够扩展/折叠某些部分,并且正在使用:
<input onclick="return toggleDiv('xx')"
type="button"
class="button"
value="click here to expand/collapse"/>
并且在我有功能:
function toggleDiv(a){
var e=document.getElementById(a);
if(!e)return true;
if(e.style.display=="none"){
e.style.display="block"
} else {
e.style.display="none"
}
return true;
}
第一次单击一个按钮不起作用,随后的单击(在任何一个按钮上)都可以正常工作。
这里有相关的对话: 需要单击两次按钮才能触发功能
但我不明白答案(技术性太强;-),有人可以帮忙解释一下吗?
我希望访问者能够扩展/折叠某些部分,并且正在使用:
<input onclick="return toggleDiv('xx')"
type="button"
class="button"
value="click here to expand/collapse"/>
并且在我有功能:
function toggleDiv(a){
var e=document.getElementById(a);
if(!e)return true;
if(e.style.display=="none"){
e.style.display="block"
} else {
e.style.display="none"
}
return true;
}
第一次单击一个按钮不起作用,随后的单击(在任何一个按钮上)都可以正常工作。
这里有相关的对话: 需要单击两次按钮才能触发功能
但我不明白答案(技术性太强;-),有人可以帮忙解释一下吗?
我希望访问者能够扩展/折叠某些部分,并且正在使用:
<input onclick="return toggleDiv('xx')"
type="button"
class="button"
value="click here to expand/collapse"/>
并且在我有功能:
function toggleDiv(a){
var e=document.getElementById(a);
if(!e)return true;
if(e.style.display=="none"){
e.style.display="block"
} else {
e.style.display="none"
}
return true;
}
第一次单击一个按钮不起作用,随后的单击(在任何一个按钮上)都可以正常工作。
这里有相关的对话: 需要单击两次按钮才能触发功能
但我不明白答案(技术性太强;-),有人可以帮忙解释一下吗?
我希望访问者能够扩展/折叠某些部分,并且正在使用:
<input onclick="return toggleDiv('xx')"
type="button"
class="button"
value="click here to expand/collapse"/>
并且在我有功能:
function toggleDiv(a){
var e=document.getElementById(a);
if(!e)return true;
if(e.style.display=="none"){
e.style.display="block"
} else {
e.style.display="none"
}
return true;
}
第一次单击一个按钮不起作用,随后的单击(在任何一个按钮上)都可以正常工作。
这里有相关的对话: 需要单击两次按钮才能触发功能
但我不明白答案(技术性太强;-),有人可以帮忙解释一下吗?
我知道这是一个旧线程,但为了有点有用(为了改变),你总是可以在函数中调用当前显示。 或者,您可以定义加载时,但鉴于按钮可能不会被点击,我更愿意通过 addEventListener() 来完成。
document.getElementById("someID1").addEventListener("click", hideOpen);
function hideOpen() {
var x = document.getElementById("someID2");
x.style.display = window.getComputedStyle(document.getElementById("someID2")).display;
if (x.style.display === "none") {
x.style.display = "block";
} else {
x.style.display = "none";
}
}
有效地加载JS,然后当一个元素被点击(someID1)时,该函数将定义变量X,分配当前计算的style.display,然后测试它是块还是无。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.