即使从事件监听器/ ExtJS禁用组合框中的项目

时间:2014-03-04 17:17:31

标签: javascript extjs combobox

假设我有这个商店:

var statsType = Ext.create('Ext.data.Store', {
fields: ['id', 'grayedOutComboItem', 'type', 'typeClass'],
data: [{
    'id': '',
    'grayedOutComboItem': 'x-combo-grayed-out-item',
    'type': '== Moyennes ==',
    'typeClass': 'mean'
}, {
    'id': '1',
    'grayedOutComboItem': '',
    'type': 'Moyennes journalières',
    'typeClass': 'mean',
}, [...]

和这个听众的组合框:

        [...]
        listeners:
        {
            'beforeselect': function(combo, record, index)
            {
                return ("" != record.data.id);
            }, [...]

它的工作原理是因为如果单击具有空id的项目,则组合框显示中不会发生任何事情。
但问题是,它仍会触发听众的事件。
所以当你点击它时仍然会触发东西。

如何禁用它,以便它不再触发任何东西!

:)

1 个答案:

答案 0 :(得分:1)

要取消事件以使其不触发,请使用:

'beforeselect': function(combo, record, index, e) {
   if( "" == record.data.id ) {
      e.stopEvent();
   }
}