[英]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.