[英]ExtJS: checkbox click or keyup event
現在,我可以在controller
處理checkbox
change
事件。 我這樣做是這樣的:
"[itemId=TestCheckbox]": {
change: this.updateCheckbox
}
我對此不滿意的是,即使以編程方式更改了復選框的狀態(例如,第一次綁定該值時),也會觸發此事件。 所有這些導致不必要的服務器請求:
我不喜歡這個。 我想要諸如keyup事件或check事件之類的東西,以便僅當手動更改復選框的狀態而不是通過編程更改狀態時,才可以觸發服務器請求。
您可以嘗試將mousedown/keydown
處理程序添加到復選框el
,然后在其中設置一個標志,然后在change事件處理程序中檢查該標志
{
xtype: 'checkboxfield',
listeners: {
mousedown: {
element: 'el',
fn: function (e, el) {
Ext.getCmp(e.currentTarget.id).myFlag = true
}
},
change: function (cb, newValue, oldValue, eOpts) {
console.log(cb, cb.myFlag)
}
}
}
如果您正在使用setValue將值設置為combo,則會觸發change event。 在這里檢查
您可以使用suspendEvents和resumeEvents避免這種情況。
在設置值之前調用suspendEvents,在設置值之后調用resumeEvents(true) 。
suspendEvents將覆蓋由setValue觸發的所有事件, resumeEvents將再次恢復觸發事件。 不要忘記將true參數傳遞給resumeEvents
combo.suspendEvents();
combo.setValue(value);
combo.resumeEvents(true);
閱讀更多有關suspendEvents和resumeEvents的信息 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.