Javascript 为什么我的侦听器不能在extjs上工作?
这是代码,我也希望onPaste事件,而不是单击,但没有任何工作Javascript 为什么我的侦听器不能在extjs上工作?,javascript,extjs,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', funct
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");
});
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");
}
}
});
Ext.form.TextField没有“单击”事件。您可以在以下位置查看它支持的事件: 我能想到的最接近你所寻求的是“聚焦”事件 如果确实必须有一个单击事件,则可以尝试将侦听器附加到字段对象的基本DOM元素:
Ext.form.TextField({
listeners: {
afterrender: function( field ) {
field.getEl().on('click', function( event, el ) {
// do something on click
});
}
}
});
然而,我不能说我知道这会有多成功
有关Ext.Element单击事件的文档可在以下位置找到:
这是可行的。然后还有其他问题-上面的代码是正确的。你试过调试器吗?顺便说一句,on和addListener是一样的..嗨,我不知道如何使用调试器,我也尝试了你的代码,我不知道它在任何情况下都不工作,我想我们必须找到需要设置的变量,以便在单击时激活,或者有一个由owlness给出的有效答案,也许你可以建议更好的代码,或者你从中得到了一些东西,即使点击字段标签,这个监听器也会被触发。您应该像这样将事件绑定到内部的输入元素:var inputElement=field.getEl.down'input';即使这样,单击字段标签也可以在输入字段本身上触发click事件,这就是为什么您应该像这样使用mousedown事件:inputElement.on{mousedown:function{/。。
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");
});
}}
});