0

以下のコードが機能しない理由を誰かに教えてもらえないかと思っていました。最初の 2 つの on 関数は機能していますが、最後の on 関数は機能していません。「未定義の on のメソッドを呼び出せません」というエラー メッセージが表示されます。

この行が気に入らないようです、 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);       
        });
    }})
4

1 に答える 1

1

rateSummaryこれは、この関数が実行された時点でコンポーネントがレンダリングされないことを意味します。したがって、報告したエラーメッセージでクラッシュ時にメソッドをgetEl()返しundefined、呼び出しundefinedます...

このコンポーネントは正確には何ですか?要素ではなく、コンポーネントにリスナーを直接登録できませんか? このような:

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

それ以外の場合は、次のようにすると、Ext がレンダリングを待機します。

textF.on({
    el: {
        // ...
    }
});
于 2013-09-18T13:52:33.757 に答える