Javascript 使用jquery更新多个select标记(移动)
我想同步多个Javascript 使用jquery更新多个select标记(移动),javascript,jquery,jquery-mobile,Javascript,Jquery,Jquery Mobile,我想同步多个标记,以便在更改一个标记时,它们都会更改。它们都是jquery移动页面导航栏标题的一部分。我的选择器是:$(“标题选择”) 我像这样连接了change事件: var statusselect = $("header select"); var statusevent = function (event) { statusselect.off("change"); statusselect.val(event.target.value); statuss
标记,以便在更改一个标记时,它们都会更改。它们都是jquery移动页面导航栏标题的一部分。我的选择器是:$(“标题选择”)
我像这样连接了change
事件:
var statusselect = $("header select");
var statusevent = function (event) {
statusselect.off("change");
statusselect.val(event.target.value);
statusselect.on("change", statusevent);
try {
statusselect.selectmenu("refresh");
}
catch(e) {
}
};
statusselect.on("change", statusevent);
只有当我有try/catch
语句时,这才有效。如果我取出try/catch
及其内部代码,
的文本仅在第一次更改后更新。之后,事件被正确激发,传递的所有值都正确,但文本永远不会更新(显示正确选择的选项)
如果我取出try/catch
并离开statusselect.selectmenu(“刷新”)
,则会抛出一个异常,说明对象尚未初始化
所以我留下来挠头:为什么我需要抛出一个异常才能让
更改它的文本?是因为视图中不存在的
引发了异常吗?我想您已经回答了自己的问题,刷新
方法用于刷新已初始化的小部件(在本例中选择菜单
),在您的情况下,尚未对其他页面上的选择进行初始化(增强在事件中进行),因此您需要首先对其进行初始化,您可以通过调用.selectmenu()
手动进行初始化 好的,在pageinit事件中调用selectmenu()
?或者之前?根据JQM文档,大多数小部件都应该基于pageinit事件
“自动初始化”自己,所以一旦触发事件,就不需要这样做。你所发生的事情是,事件还没有触发,如果你想手动调用它,那么你可以在事件发生之前这样做,或者只是把它放在catch块中。啊,好吧,我想你是这么说的。非常感谢。