【发布时间】:2019-02-08 06:42:36
【问题描述】:
我正在构建的电子应用程序中的复选框有问题。
复选框运行良好并返回正确的值,选中时返回 true 值,否则返回 false。
当我将一些库添加到我的应用程序时,复选框在选中或取消选中时开始返回错误值。
以下是项目的属性:
Package.Json
"dependencies": {
"dexie": "^2.0.4",
"electron-titlebar-windows": "^3.0.0",
"jquery": "^3.3.1",
"lodash": "^4.17.10",
"material-design-icons": "^3.0.1",
"materialize-css": "^1.0.0-rc.2",
"talkify-tts": "^2.1.2",
"typeface-roboto": "0.0.54"
},
"devDependencies": {
"electron": "^2.0.4",
"electron-packager": "^12.1.0"
}
Index.html
// First option
$('#roswitch').change(() => {
if ($(this).prop("checked")) {
console.log("Checked")
} else {
console.log("Not Checked")
}
})
// Second option
$('#roswitch').change(() => {
if ($(this).is(":checked")) {
console.log("Checked")
} else {
console.log("Not Checked")
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="switch">
<label>
Off
<input id="roswitch" value="false" type="checkbox">
<span class="lever"></span>
On
</label>
</div>
我已经在 JQuery 中尝试了这两个选项,并且都返回 false。
谢谢
【问题讨论】:
-
问题是因为您在事件处理程序定义中使用了箭头函数。这意味着外部范围保留在处理程序中,因此
this不是您所期望的。简单修复,这里不要使用箭头函数,或者改用event.target。
标签: javascript jquery html node.js electron