【问题标题】:How to assign another value to a variable using js based swtich如何使用基于 js 的开关为变量分配另一个值
【发布时间】:2020-06-25 16:24:42
【问题描述】:

我需要它使用基于“已检查”的开关将 link6/linkr/linkd 更改为“t”,开关在视觉上正常工作,但它不会将 link6 更改为“t”

无论如何切换都不会将链接更改为“t”

使用调试器我发现它不想触发,帮我让它可触发

var link6 = "r";
var linkr = "r";
var linkd = "r";

    function download74() {
document.getElementById('link1' + link6).click();
}   
function download143() {
document.getElementById('link2' + linkr).click();
}
    function download198() {
document.getElementById('link3' + linkd).click();
}
function myFunction74() {
  if (confirm("Вы собираетесь скачать 74 devblog (RustUP)!")) {
    download74();
  } else {
    return 0;
  }
}
function myFunction143() {
  if (confirm("Вы собираетесь скачать 143 devblog (Immortal)!")) {
    download143();
  } else {
    return 0;
  }
}
function myFunction198() {
  if (confirm("Вы собираетесь скачать 198 devblog (TRINITY)!")) {
    download198();
  } else {
    return 0;
  }
}

var value = 0;
    var checkbox1 = document.getElementById("checkbox1");
    checkbox1.checked = value;
    document.getElementById("checkbox1").addEventListener("change", function(element){
            if (element.checked) {
      link6 = "t";
    } else {
      link6 = "r";
    }
    });
    var checkbox2 = document.getElementById("checkbox2");
    checkbox2.checked = value;
    debugger;
    document.getElementById("checkbox2").addEventListener("change", function(element){
            if (element.checked) {
            conslose.log("works");
            linkr = "t";
    } else {
    console.log("dont");
      linkr = "r";
    }
    });
    var checkbox3 = document.getElementById("checkbox3");
    checkbox3.checked = value;
    document.getElementById("checkbox3").addEventListener("change", function(element){
            if (element.checked) {
            linkd = "t";
    } else {
      linkd = "r";
    }
    });
    ```

【问题讨论】:

标签: javascript


【解决方案1】:

我做了一个例子。看看是否适合您:

var checkbox2 = document.getElementById("checkbox2");
checkbox2.checked = value;

checkbox2.addEventListener('change', (event) => {
  if (event.target.checked) {
   linkr = "t";
  } else {
    linkr = "r";
  }
})

【讨论】:

  • 我刚刚在 html 文件中设置了“onclick”,它就可以工作了
【解决方案2】:

您在匿名更改函数中使用了“if (checkbox1.checked)”,但是当触发此代码时,checkbox1 元素不再存在。你需要做 "if (this.checked)" 或 "if (element.checked)" 。

【讨论】:

  • ` if (this.checked) { link6 = "t"; } 其他 { 链接 6 = "r"; }` 也不行
  • 你有没有放一个“DEBUGGER”来检查函数是否被触发?
  • 它不会触发
  • 所以你还有其他问题。变量 checkbox1 找到了吗?看这里:stackoverflow.com/questions/6358673/…
猜你喜欢
  • 2022-06-11
  • 2019-09-01
  • 1970-01-01
  • 2019-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多