javascript - 如何记住 Crossrider 中弹出窗口的状态?

标签 javascript jquery popup crossrider

我在 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);
    })
});

执行此操作的正确方法是什么?

谢谢!!!

最佳答案

弹出窗口的调用之间不会保留弹出窗口内容;因此,您必须将状态保存在弹出范围之外,通常是针对少量数据,例如 Crossrider 数据库中使用 appAPI.db 的数据。 .

此外,此类代码最好放置在 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 员工]

关于javascript - 如何记住 Crossrider 中弹出窗口的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22757210/

相关文章:

jquery - 将日历 jquery 图像添加到 datepicker

jquery - 为什么 jReject 不能正常工作?

javascript - Chrome 未发送 Cookie,withCredentials 为真

java - 在移动浏览器中打开时,html 页面顶部的文件名和图标会缩水?

php - 让回车键点击搜索按钮

javascript - 如何使用推文按钮弹出新窗口

CSS bootstrap 悬停工具提示不起作用

javascript更改对象变量引用

javascript - redux 中的常量有什么意义?

javascript - getElementsByClassName 在 Chrome 中究竟是如何工作的?,特别是 w.r.t.节点列表和 DOM