手动触发Switchery开关 - 在Phonegap / Android上不起作用

时间:2014-02-23 09:44:36

标签: javascript jquery cordova checkbox

我正在使用S witchery JQuery plugin作为我的Phonegap应用交换机。当我加载视图时,我正在从window.localStorage读取开关设置(真或假)(用它来保存/保存开关设置)。

加载视图时,我运行了一个代码,该代码从每个交换机的本地存储中读取数据,并使用以下代码(示例)在需要时将其打开:

$(".switchery:nth(1)").click();

这将打开第二个开关。

问题:

它适用于iOS7,但不适用于Android。当触发Android上的点击(在2.3.6上测试)时,它保持不变。我也试过.trigger('click')但没有成功。

我的目标是使用本地存储中的持久数据填充正确的开关(打开或关闭),因此开关将设置为“开”或“关”。默认情况下,它们在视图中呈现时处于“关闭状态”。

1 个答案:

答案 0 :(得分:0)

首先,您必须在初始化期间将所有开关存储在数组中

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

这对我有用。如果你遇到任何UI问题,即开关移动一些额外的像素,然后打开switchery.js并在 Switchery.prototype.setPosition 函数中将 jack.offsetWidth 替换为30