Сообщение от posta
|
Делаю:
{ xtype: 'button', iconCls: 'icon-delete', text: 'Test',handler: testfn ('alert')}
...
function testfn (fn){
return false;
alert(fn);
}
Работает Если запускать без аргумента. а с аргументом - не робит =(
Подскажите как сделать так, чтобы работало?
|
Скорее всего ты ищешь как передать параметры в обработчик события.
Смысла прерывать событие в данном случае нет, т.к. тогда зачем его ставить.
Вместо передачи функции в handler, ты её запускаешь.
Аргументы передаются так.
Либо через scope, либо через createDelegate
1 -
{
xtype: 'button',
iconCls: 'icon-delete',
text: 'Test',
handler: testfn
scope:{text:'alert'}
}
2 -
{
xtype: 'button',
iconCls: 'icon-delete',
text: 'Test',
handler: testfn
scope:this
}
3 -
var sayHi = function(name){
alert('Hi, ' + name + '. You clicked the "' + this.text + '" button.');
}
var btn = new Ext.Button({
text: 'Say Hi',
renderTo: Ext.getBody()
});
btn.on('click', sayHi.createDelegate(btn, ['Fred']));
Или
function myButtonHandler(a,b,c){
console.log(a);//1
console.log(b);//2
console.log(c);//3
}
var myButton = new Ext.Button({
id : 'myButton',
renderTo : Ext.getBody(),
text : 'Save',
handler : myButtonHandler.createDelegate(this, [1,2,3])
});