0
我想使用checkbox
来显示服务在运行时是否正在运行,如果未运行则显示未运行,这是我的复选框。复选框更改被检测两次
<input id="controller" type="checkbox" class="switch-small" checked > Controller
然后我使用这个JavaScript
捕获事件。
在下面的代码中,我想知道服务是否正在运行,因此我可以正确更改其状态,例如,如果选中,用户点击它,他想停止服务,反之亦然。
var state = false;
if ($('#controller').prop('checked')){
state = true;
}
但什么是错在我下面的代码,因为change
被称为两次,我不知道为什么会这样,我想只是调用一次。
$(document).ready(function() {
$('#controller').change(function() {
if (!state){
alert("ON");
} else {
alert("OFF");
}
if ($('#controller').prop('checked')){
state = true;
}else{
state = false;
}
});
});
我所有的组件都有唯一的ID。 任何想法为什么会发生这种情况?
我没有看到任何东西马上你的代码错误。你可以创建一个小提琴(或内置SO例子)? – j08691 2014-09-19 15:53:35
你在这里发布的代码似乎没有任何问题,是否有可能从你那里弄到一个小提琴,这样我们可以进一步检查? – artm 2014-09-19 15:54:11
你的代码似乎工作([fiddle](http://jsfiddle.net/m0spgbbp/1/))。注意它可以被简化([fiddle](http://jsfiddle.net/m0spgbbp/))。 – Oriol 2014-09-19 15:55:09