我在Crossrider中有一个弹出窗口,其中有一个复选框。它看起来像这样:
popup.html
<body>
<div data-role="page" id="div1">
<label for="checkbox1">Enable Something</label>
<input type="checkbox" id="checkbox1">
</div>
</body>
现在,当用户关闭弹出窗口时,我希望弹出窗口能够记住复选框的状态。因此,如果用户启用了#checkbox1,我希望下次打开弹出窗口时仍然启用它。
我尝试过这样做但不起作用:
popup.js
$(document).ready(function(){
$('#checkbox1').on('change', function(){
if ($(this).is(':checked'))
$('#checkbox1').prop('checked', true);
else
$('#checkbox1').prop('checked', false);
})
});
这样做的正确方法是什么?
谢谢!!!
答案 0 :(得分:2)
弹出窗口的调用之间不保留弹出内容;因此,您必须将状态保存在弹出范围之外,通常是使用appAPI.db在Crossrider数据库中为少量数据保存。
此外,此类代码最好放在 crossriderMain 函数中,该函数在页面准备就绪时自动调用。
例如:
<!DOCTYPE html>
<html>
<head>
<!-- This meta tag is relevant only for IE -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<script type="text/javascript">
function crossriderMain($) {
if (appAPI.db.get('checkbox1'))
$('#checkbox1').prop('checked', true);
else
$('#checkbox1').prop('checked', false);
$('#checkbox1').on('change', function(){
appAPI.db.set('checkbox1', $(this).is(':checked'));
})
}
</script>
</head>
<body>
<div data-role="page" id="div1">
<label for="checkbox1">Enable Something</label>
<input type="checkbox" id="checkbox1">
</div>
</body>
</html>
[披露:我是Crossrider员工]