为什么我的听众不会在extjs上工作?

时间:2010-07-03 15:29:53

标签: javascript extjs

这里是代码,我也想要onPaste事件而不是点击但没有工作

var mpan0 = new Ext.form.TextField({
    name:'mpan[]' ,
    value:0 , 
    allowblank:false , 
    enableKeyEvents:true ,
    fieldLabel:'Mpan',
    maxLength:2,
    width:35
    });

mpan0.addListener('click', function(){ 
    alert( "amiy");
});

3 个答案:

答案 0 :(得分:6)

Ext.form.TextField没有'click'事件。您可以在以下位置查看它支持的事件:

http://www.sencha.com/deploy/dev/docs/?class=Ext.form.TextField

我能想到的最接近你所追求的是'焦点'事件。

如果您确实必须有click事件,可以尝试将侦听器附加到field对象的基本DOM元素:

Ext.form.TextField({
    listeners: {
        afterrender: function( field ) {
            field.getEl().on('click', function( event, el ) {
                 // do something on click
            });
        }
    }
});

然而,我无法宣称会有多成功。

有关Ext.Element点击事件的文档可在以下网址找到:

http://www.sencha.com/deploy/dev/docs/?class=Ext.Element

答案 1 :(得分:2)

yourtextfield = new Ext.form.TextField({
    id:'yourtextfield ',
    readOnly : true,
    listeners: {'render': function(cmp) { 
      cmp.getEl().on('click', function( event, el ) {
      alert("You click text field");
      });            
    }}        
});

这很有效。

答案 2 :(得分:-3)

ExtJs使用on,因此它应该是

mpan0.on("click", function(){
    alert("amiy");
});

但你也可以声明性地添加它

var mpan0 = new Ext.form.TextField({
    name:'mpan[]' ,
    value:0 , 
    allowblank:false , 
    enableKeyEvents:true ,
    fieldLabel:'Mpan',
    maxLength:2,
    width:35,
    listeners: {
        "click": function() {
            alert("amiy");
        }
    }
});