雖然我不知道標題問題的答案,但我還是想知道onChange的奇怪之處。
我會假設你和你一樣,但事實證明,當你設置表單小部件的值時,onChange
事件被觸發並超時。從dijit.form._FormWidget
:
// setTimout allows hidden value processing to run and
// also the onChange handler can safely adjust focus, etc
this._onChangeHandle = setTimeout(dojo.hitch(this,
function(){
this._onChangeHandle = null;
this.onChange(newValue);
}), 0); // try to collapse multiple onChange's fired faster than can be processed
這意味着你的第2步進行,重視第二onChange
聽衆事件實際觸發之前。你可以做什麼來解決你的問題,就是使用set
方法的第三個參數。
yourFormWidget.set("value", myNewValue, false);
第三個參數叫做priorityChange,當設置爲false時,onChange事件不會被觸發。希望有所幫助。 (感謝#dojo上的kgf教我:-))
不客氣:)(很高興見到你在這裏!) – 2011-02-24 03:36:13
謝謝。你真的很有幫助。 – 2011-02-24 07:03:40