В существующей Ext JS кода в приложении, комбо бокс перекрываться, как это:extjs combo override: зачем определять this.addevents()?
Ext.override(Ext.form.ComboBox, {
nullable:true
,initComponent: Ext.form.ComboBox.prototype.initComponent.createSequence(function(){
this.triggerConfig = {
tag:'span', cls:'x-form-twin-triggers', cn:[
{tag: "img", src: Ext.BLANK_IMAGE_URL, cls:'x-form-trigger '},
{tag: "img", src: Ext.BLANK_IMAGE_URL, cls:'x-form-trigger x-form-clear-trigger'}
]};
this.addEvents(
'clear',
'change'
);
}})
Почему мы должны определить:
this.addEvents(
'clear',
'change'
);
«изменение» уже определено как событие для combobox в extjs. 'clear' не определен в extjs.
EDIT: Может быть, ссылка на фактический пример поможет: вот оно. http://www.sencha.com/forum/showthread.php?84300-Nullable-ComboBox&p=404222&langid=14
Действительно. Определение 'change' немного странно, так как оно наследуется в любом случае feom' Ext.form.Field'. Что касается 'clear', возможно, он используется в другом месте. JavaScript дает вам эту неприятную возможность распространять свои определения вокруг, поэтому это может быть не очевидно. – Mchl