這看起來非常微不足道,但我不知道它爲什麼不工作。JavaScript布爾真正變成假,假不變真
我正在使用div而不是我的web應用程序的複選框。我正在使用名爲「contentEditable」的JavaScript功能將布爾屬性設置爲HTML div元素。
下面是切換屬性true或false代碼:
$(document).on('click', '.chartPageSensorBox', function() {
var chartNumber = this.id.charAt(6),
visibilityIndex = this.id.charAt(9),
checkBoxToggle = this.id.contentEditable;
//the alert below returns default value, output is: 'true true'
alert(this.id.contentEditable + " " + checkBoxToggle);
checkBoxToggle = !checkBoxToggle;
this.id.contentEditable = checkBoxToggle;
//the alert output now is: 'false false'
alert(this.id.contentEditable + " " + checkBoxToggle);
//The series for the chart successfully turns off because it is false
allCharts[chartNumber - 1].dyGraph.setVisibility(visibilityIndex, checkBoxToggle);
});
現在的問題是,當我再次點擊股利,虛假仍假永不變回真,我不理解爲什麼自if語句應該將checkBoxToggle變爲true。編輯#1:清理代碼,但沒有修復錯誤只是爲了讓未來的讀者更清晰。
編輯#2:請參閱下面的代碼。核心問題仍然存在......
$(document).on('click', '.chartPageSensorBox', function() {
var chartNumber = this.id.charAt(6),
visibilityIndex = this.id.charAt(9),
checkBoxToggle = $(this).prop("contentEditable");
alert(checkBoxToggle);
checkBoxToggle = !checkBoxToggle;
alert(checkBoxToggle);
//After the alerts, true becomes false, but false remains false indefinitely.
$(this).prop("contentEditable", checkBoxToggle);
allCharts[chartNumber - 1].dyGraph.setVisibility(visibilityIndex, checkBoxToggle);
});
'的document.getElementById(this.id)'?爲什麼不使用'this'? –
愚蠢的錯誤...好點。 – NutellaAddict
我知道。這就是我最初做的......我'擴大'了代碼以嘗試調試它。 – NutellaAddict