簡體   English   中英

如何使用 JavaScript 更改切換開關

[英]How to change toggle switch with JavaScript

我設計了一個帶有 CSS 和 HTML 的切換開關,但我希望能夠使用 javascript 切換/更改切換開關。

我該怎么做,您可以查看此jsfiddle鏈接中的代碼

<div id="activate" class="toggle-switch" data-ts-color="green">
  <label for="ts4" class="ts-label">Activate Account</label>
  <input id="ts4" type="checkbox" hidden="hidden">
  <label for="ts4" class="ts-helper"></label>
</div>

我的 Javascript:但它不起作用

if (false) {
    // turn toggle switch off
    $("#ts4").attr("checked", false);
    $('#activate').click();
} else {
    // turn toggle switch off
    $('#ts4').attr("checked", true);
    $('#activate').click();
}

我希望何時能夠以編程方式切換切換開關? 我從數據庫中得到一個值

兩件事:

1) javascript 中的語法,您沒有關閉“if”括號。 2) 您沒有檢查 JSFiddle 中 jQuery 的使用。 沒有它就行不通。 這是工作示例:

if (false) {
  // turn toggle switch off
  $("#ts4").attr("checked", false);
  $('#activate').click();
} else {
  // turn toggle switch ON
  $('#ts4').attr("checked", true);
  $('#activate').click();
}

https://jsfiddle.net/a99dkxp1/4/

您應該使用prop()而不是attr() ,因為 attr 僅設置具有給定值的屬性而沒有任何“智能”並且checked是一個標記屬性,它根本不需要有值。 prop()實現了這樣的“智能”。

您的 if 語句將始終采用“其他”方式。

if(false) {
     // unreachable code
}else {
}

就像

if(true) {
}else {
    // unreachable code
}

將其更改為

 if(property == false) {...

甚至更好

if(!property) {...

或內聯條件並刪除 if-else

$("#ts4").attr("checked", !property); 
$('#activate').click(); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM