不能调用undefined的方法

时间:2013-09-18 13:00:03

标签: javascript button extjs playframework

我想知道是否有人可以告诉我为什么以下代码无效。函数中的前2个函数正在工作,然后函数的最后一个函数不起作用,我收到错误消息“无法调用未定义的方法。”

似乎不喜欢这一行,textF.getEl()。on('click',function(){

    bUpdateSwitch.on({'click': function (){
        var textF = Ext.getCmp('rateSummary');
        textF.enable();
        textF.getEl().on('click', function() {
            Ext.getCmp('rtCurrency').enable();
            Ext.getCmp('rtCurrency').setReadOnly(false); 
            Ext.getCmp('rtAccEffDate').enable(); 
            Ext.getCmp('rtAccEffDate').setReadOnly(false); 
            Ext.getCmp('rtAccExDate').enable(); 
            Ext.getCmp('rtAccExDate').setReadOnly(false); 
            Ext.getCmp('rtJctR260').enable(); 
            Ext.getCmp('rtJctR260').setReadOnly(false); 
            Ext.getCmp('switchRate').enable(); 
            Ext.getCmp('switchRate').setReadOnly(false);       
        });
    }})

1 个答案:

答案 0 :(得分:1)

这意味着在执行此函数时不会呈现您的rateSummary组件。因此,getEl()会返回undefined,并且undefined上的方法会因您报告的错误消息而崩溃...

这个组件究竟是什么?你不能直接在组件上注册监听器而不是它的元素吗?像这样:

textF.on('click', function() {
    // ...
});

否则,这样做,Ext将负责等待渲染:

textF.on({
    el: {
        // ...
    }
});