,我正在使用我在网上找到的这个小部件,使复选框看起来像iOS交换机。我试图根据我在其他地方的变量开始按关闭或关闭开关。问题是,如果我使用checkbox.click()
,则更改了小部件的基础复选框,但没有触发开关。我正在尝试使用这一特定事件来了解有关我在JS中不知道的内容的更多信息,尤其是如何触发小部件动画。这个小部件的JS非常令人困惑,我认为我可以通过click()
或onclick()
触发动画,但两者都不起作用。我不知道如何进行。
下面附带的是最小工作示例。只需在一个名为simple_switch_master
的文件夹中下载回购,只需在同一目录中添加这些文件!
html文件, index.html
:
<html>
<head>
// Load in libraries
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.0/jquery.min.js"> </script>
<script src="./simple-switch-master/jquery.simpleswitch.js"></script>
<link rel="stylesheet" href="./simple-switch-master/simple-switch.css" />
</head>
<body>
<div><input id=toggle type="checkbox" class="mybox"></div>
<script src="./control.js"></script>
<script>
$(".mybox").simpleSwitch();
</script>
</body>
</html>
JavaScript文件,control.js
:
var checkbox = document.getElementById("toggle");
console.log(checkbox.checked) // Returns false as expected
checkbox.click()
console.log(checkbox.checked) // Returns true even though the switch is off
在某些版本的jQuery中,如果使用checkbox.checked
,则会返回此元素的初始状态(如果以此值启动,则有时为true),而不会更改。但是,某些版本可以修改此值。
如果要更改状态,则可以使用$("#elementID").prop("checked")
您可以在http://api.jquery.com/prop/