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