Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 取消选中复选框不起任何作用_Javascript_Html_Checkbox_Menu - Fatal编程技术网

Javascript 取消选中复选框不起任何作用

Javascript 取消选中复选框不起任何作用,javascript,html,checkbox,menu,Javascript,Html,Checkbox,Menu,这是我的菜单栏 已关闭: 已打开: 当窗口超过某个断点时,我希望菜单栏关闭。 下面是代码: html 即使在控制台中,我看到check在断点后有一个假值,菜单仍然是打开的。有什么帮助吗?更改选中的值不会触发onchange事件。你必须自己触发它。check.checked=false之后添加: if ("createEvent" in document) { var evt = document.createEvent("HTMLEvents");

这是我的菜单栏
已关闭:

已打开:

当窗口超过某个断点时,我希望菜单栏关闭。 下面是代码:
html


即使在控制台中,我看到check在断点后有一个假值,菜单仍然是打开的。有什么帮助吗?

更改选中的值不会触发
onchange
事件。你必须自己触发它。
check.checked=false之后添加:

if ("createEvent" in document) {
  var evt = document.createEvent("HTMLEvents");
  evt.initEvent("change", false, true);
  check.dispatchEvent(evt);
}
else
  element.fireEvent("onchange");

或者
handleChange(检查)
Huh听起来很有趣。。。但我还是犯了一个错误:fireEvent不是function@AleksandreBregadze没错,fireEvent是老东西。我使用dispatchEvent更正了它。这样,只有当您的浏览器不支持事件创建(我猜IE9<)时,您才可以使用fireEvent。它确实工作得很好!然而,现在我有下一个问题,它并没有改变标签的状态。调整大小后,按钮仍保持“X”形。也许你也需要什么?
window.addEventListener('resize', function(){
    const check = document.getElementById('responsive-menu');
    if(check.checked){
        if (window.innerWidth > 845){
            check.checked = false;
        }
    }
})
if ("createEvent" in document) {
  var evt = document.createEvent("HTMLEvents");
  evt.initEvent("change", false, true);
  check.dispatchEvent(evt);
}
else
  element.fireEvent("onchange");