如何记住《穿越骑士》中弹出窗口的状态

How to remember the state of a popup in Crossrider?

本文关键字:窗口 状态 何记住 穿越骑士 穿越 骑士      更新时间:2023-09-26

我在Crossrider中有一个弹出窗口,其中我有一个复选框。它看起来像这样:

弹出窗口.html

<body>
    <div data-role="page" id="div1">
        <label for="checkbox1">Enable Something</label>
        <input type="checkbox" id="checkbox1">
    </div>
</body>

现在,当用户关闭弹出窗口时,我希望弹出窗口记住复选框的状态。因此,如果用户启用了 #checkbox1,我希望下次打开弹出窗口时仍启用它。

我尝试这样做,但它不起作用:

弹出窗口.js

$(document).ready(function(){ 
    $('#checkbox1').on('change', function(){
        if ($(this).is(':checked'))
            $('#checkbox1').prop('checked', true);    
        else
            $('#checkbox1').prop('checked', false);
    })
});

正确的方法是什么?

谢谢!!!

弹出窗口

内容在弹出窗口的调用之间不会保留;因此,您必须将状态保存在弹出窗口范围之外,通常用于使用 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员工]