我有多个<select/>
标签我想同步,以便当一个被更改时,他们都改变。它们都是jquery移动页面的导航栏标题的一部分。我的选择是这样的:$("header select")
。用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
及其内部代码,则<select/>
的文本仅在第一次更改后更新。之后,事件被正确触发并且所有传递的值都是正确的,但文本从不更新(显示正确选择的选项)。
如果我拿出try/catch
并离开statusselect.selectmenu("refresh")
,则会抛出异常,指出该对象尚未初始化。
因此,我仍然抓我的头:为什么我需要抛出一个异常,以便<select/>
改变它的文本?是否因为不在视图中的<select/>
引发异常?
好的,所以在pageinit事件中调用'selectmenu()'?或之前? – 2012-08-15 19:36:19
根据JQM文档,大多数小部件应该基于'pageinit事件'自动初始化自己,因此一旦事件触发就不需要这么做。你发生的事情是事件还没有被解雇,如果你想手动调用它,那么你可以在事件发生之前这么做,或者只是将它放在catch块中。 – Jack 2012-08-15 19:43:17
啊,好的,那是我以为你在说什么。谢谢! – 2012-08-15 19:46:45