Я использую S witchery JQuery-плагин для моих переключателей приложений Phonegap. Когда я загружаю представление, я читаю настройки переключателей (true или false) из window.localStorage
(используйте его для сохранения/сохранения настроек переключателей).
Когда представление загружено, я запускал код, который считывает данные из локального хранилища для каждого коммутатора и использует следующий код (пример) для его включения, если необходимо:
$(".switchery:nth(1)").click();
Это включит второй переключатель.
Проблема:
Он отлично работает на iOS7, но не на Android. При запуске нажатия на Android (проверено на 2.3.6), он остается неизменным. Я также пробовал .trigger('click')
без успеха.
Моя цель - заполнить правильные переключатели (вкл. Или выкл.), Используя постоянные данные в локальном хранилище, поэтому переключатели будут установлены на "on" или "off". По умолчанию они "выключены" при визуализации в представлении.
Сначала вы должны сохранить все переключатели в массиве во время инициализации
var elems = Array.prototype.slice.call(document.querySelectorAll('.js-switch'));
elems.forEach(function(html) {
switchery[html.getAttribute('id')] = new Switchery(html);
});
и создать локальную функцию для переключения переключателя, подобного этому
toggleSwitchery(id)
{
var s = switchery[id];
s.setPosition(true);
s.handleOnchange(true);
}
Это сработало для меня. В случае, если вы сталкиваетесь с какой-либо проблемой пользовательского интерфейса, т.е. переключатель перемещает некоторые дополнительные пиксели, тогда откройте switchery.js и замените jack.offsetWidth на 30 в функции Switchery.prototype.setPosition