Это лучший подход, обратите внимание на использование управляемого слушателя с .mon()
вместо .on()
, который лучше использовать, когда вы слушаете элементы DOM из компонентов, которые могут быть уничтожены
xtype: 'component'
,html: '<input type="submit" class="custom_loginbtn" value="Submit" id="login"/>'
,listeners: {
afterrender: function(inputCmp) {
inputCmp.mon(inputCmp.el, 'click', function(){alert('click!')}, this, {delegate:'input'});
}
,single: true
}
Кроме того, использование autoEl аналогично простому заданию свойства html компонента, другие параметры autoEl позволяют управлять типом и атрибутами внешнего тега, который автоматически создается для охвата компонента
Если вы сделали это вместо этого, вы могли бы превратить сам компонент в <input>
и избежать переноса <div>
:
xtype: 'component'
,autoEl: {
tag: 'input'
,cls: 'custom_loginbtn'
,type: 'submit'
,value: 'Submit'
}
,listeners: {
afterrender: function(inputCmp) {
// no delegate needed, since inputCmp.el is the <input>
inputCmp.mon(inputCmp.el, 'click', function(){alert('click!')}, this);
}
,single: true
}