[英]Javascript set button active
我有一個按鈕表,一旦它被填充,我就會使用
document.getElementById("btn0").click();
單擊第一個按鈕。 該按鈕正在做它應該做的事情,但是按鈕的背景顏色並沒有像我手動單擊它時那樣改變。
正如您在運行時所看到的,div 的背景顏色正在發生變化,但按鈕未設置為活動狀態。
代碼片段:
var myfunc = function(){ document.getElementById("test").style.backgroundColor="red"; }; document.getElementById("btn0").click();
.btn{ border: none; color: white; width: 100%; padding: 5px 5px 5px 5px; height: 50px; cursor: pointer; font-size: 12px; background-color: #343a40; } .btn:active .btn.active{ background-color:green; outline: none; } .btn:focus{ background-color:green; outline: none; } #test{ background-color: green; width: 600px; height: 400px; }
<button class="btn" onclick="myfunc()" id="btn0"> Cool button</button> <div id="test"> Hello </div>
這是我創建的 jsfiddle 的鏈接: https ://jsfiddle.net/58hrwcgo/3/
click()
點擊元素然后不聚焦,不像真正的鼠標點擊,點擊然后聚焦。
我建議通過同時執行以下兩項操作來模擬真正的點擊:
document.getElementById("btn0").click();
document.getElementById("btn0").focus();
const btn = document.getElementById("btn0")
var myfunc = function(){
document.getElementById("test").style.backgroundColor="red";
btn.focus();
};
btn.click();
...
.btn:active, .btn.active{
background-color:green;
outline: none;
}
...
手動單擊時,首先觸發焦點狀態。 這就是為什么外觀會根據您的班級.btn:focus
發生變化的原因。
document.getElementById("btn0").focus();
document.getElementById("btn0").click();
將導致所需的行為。
此外,您在:active
狀態下的 CSS 示例中缺少一個冒號:
.btn:active, .btn.active { ... }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.