当我更改下拉菜单的选项时,我希望取消选中所有复选框。这是我放在下拉菜单更改时调用的函数中的代码:
var inputs = document.getElementsByTagName("input");
for(var i = 0; i < inputs.length; i++) {
if(inputs[i].type == "checkbox") {
inputs[i].checked = false;
}
}
这确实取消选中该复选框。但是,要重新选中复选框,需要单击两次。dat.gui 似乎仍然认为该复选框已选中,因此只需单击一下即可取消选中它,再单击一下即可选中它。
如何让 dat.gui 更新复选框?
编辑:这是问题的当前状态。
gui = new dat.GUI;
controllers = [];
var menu = {
'This is an example': false,
}
controllers[0] = gui.add(menu, 'This is an example').onFinishChange(
function(value) {console.log('example');} ).listen();
menu['This is an example'] = false;
使用此代码,由于 .listen() 调用并将变量设置为 false,因此未选中该复选框。但是,仍然需要单击两次才能显示检查 - 一次“取消选中”复选框,一次检查它。