У меня есть всплывающее окно в 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]