2012-07-19 88 views
1

我想知道如何使用dat.GUI.js创建互斥的复选框。 API链接:http://workshop.chromeexperiments.com/examples/gui/#1--Basic-Usage使用dat.GUI.js的互斥复选框API

我创建了一个jsfiddle [http://jsfiddle.net/georgeneil/dEbRg/]来实现互斥复选框。但它有一些问题。

第1步:当我点击CheckBox2其按预期工作。

第2步:当我点击CheckBox1它没有得到检查。

有人能指导我如何解决它,或给一个链接,我可以得到关于dat.GUI.js

+0

适用于我,虽然我不得不再次点击(似乎想要双击?)。另外,为什么不使用iow单选按钮列表的正常控件。 – leppie 2012-07-23 05:12:37

+0

需要双击,那是什么问题。理想情况下,我需要双击工作。我认为单选按钮不可用在dat.GUI.js – 2012-07-23 09:03:18

回答

2

试着改变你的jsfiddle的代码如下的问题的答案:

// dat.gui controls 
var view = this; 
view.CheckBox1 = true; 
view.CheckBox2 = false; 


var gui = new dat.GUI(); 
var CB1Controller = gui.add(view, 'CheckBox1').listen(); 
CB1Controller.onChange(function(value){ 
     view.CheckBox1 = true; 
     view.CheckBox2 = false; 
}); 

var CB2Controller = gui.add(view, 'CheckBox2').listen(); 
CB2Controller.onChange(function(value){ 
     view.CheckBox1 = false; 
     view.CheckBox2 = true; 
}); 

您以前使用的布尔切换代码不能很好地推广到两个以上的选择。此外,这个版本的代码将强制执行一个被选中的复选框 - 零选择不会成为可能。

+0

非常感谢。有用 !。我们可以有零选择还有一种可能性,不会破坏功能吗? – 2012-08-07 05:01:27

+0

如何使用相同的代码,但在底部添加另一个选项,名为“以上都不是”? – 2012-08-07 16:58:15

+0

使用'以​​上都不是'似乎不适合我... !! – 2012-08-08 10:06:59