我有多個<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