复选框和Javascript:不一致的点击事件+选定状态

时间:2014-04-15 19:46:01

标签: javascript jquery angularjs twitter-bootstrap

我为Angular中的Highcharts构建了几个切换按钮。但是,我的问题更多的是一般的javascript问题而不是Angular或Highcharts,因为我在使用复选框严格使用jQuery时会弹出这个问题。

这是我的问题:当切换复选框时,我有时会单击复选框的外边缘或者在附近打开另一个下拉列表,发现虽然点击功能仍然会触发,但框状态不会改变。

例如,如果您打开附近的引导程序下拉框,然后在下拉列表打开时单击复选框,则输入复选框会很奇怪,并且不会更改状态但仍会触发预期的功能。

为了使复选框本身正确,我必须重新切换状态按钮以匹配应该在该状态下触发的函数。

这是一个小视频片段,说明了我的例子:

http://screencast.com/t/YRaDchstI

<input type="checkbox" ng-model="check1" ng-click="toggleGrp(check1)" value="{true: check1 == true}">

尽管使用了值=&#34; {true:check1 == true}&#34;作为确定盒子是否处于检查状态的故障保护,结果是不一致的。

我可以在JS中做些什么来阻止这种情况,还是这需要我更多的黑客攻击?我想我是否可以解决这个问题,我必须创建一个隐藏在按钮顶部的隐藏框,并在附近的下拉框打开时显示。

1 个答案:

答案 0 :(得分:0)

我发现如果我从一个按钮切换范围,我可以远程触发输入复选框,按钮的行为相同,无论附近是否有扩展下拉列表。

<button type="button" class="btn"
  ng-click="check1 = !check1"
  ng-class="{active: check1}"></button>

<input type="checkbox"
  ng-model="check1"
  ng-click="toggleGrp(check1)"
  style="visibility: hidden;">