2016-09-28 8 views
1

私は現在、モジュラーパターンによるアプリケーションの作業中です。ajaxが完了した後のリビンド

私が現在取り組んでいる問題は、Ajaxが完成したら、オブジェクト内の関数を起動できるようにしたいということです。私はオブジェクトを見ることができますが、関数を指定すると失敗し、として返されます。未定義

JS

var TestCase = { 
    settings: { 
    cu: $('.select'), 
    }, 

    init: function() { 
    se = this.settings; 
    }, 

    windowsReady: function() { 
    TestCase.init(); 
    if ($.fn.selectBox) { 
     TestCase.selectBind(); 
    } 
    }, 

    ajaxComp: function() { 
    TestCase.init(); 
    TestCase.selectBind(); 
    }, 

    selectBind: function(){ 
    se.cu.selectBox(); 
    }, 

}; 

JS火は - その準備ができてコールを使ってロードするときselectBindが正常に動作します。しかし、前に述べたように、ajaxcompleteはTestCase.ajaxComp();のUndefined、またはTestCase.selectBind();の直接呼び出しとして戻ってきます。console.log(TestCase)にすべてのオブジェクトがリストされます。

$(document).ready(function() { 
    TestCase.windowsReady(); 
}); 

$(document).ajaxSuccess(function() { 
    console.log(TestCase); 
    TestCase.ajaxComp(); 
    console.log('completed'); 
}); 
+0

にそれを変更してみてくださいなぜ、たったの$(ドキュメント).ready()の呼び出しでライン6-8を入れませんか? –

+0

「あなたは未定義に戻ってきます」とはどういう意味ですか?受け取っているエラーメッセージ全体を含めることができます。 –

+0

@MikeMcCaughan私は唯一のエラーです。私の説明によると、私は 'TestCase.ajaxComp()'を呼び出そうとしています - それは 'undefined'で戻ってきます。私が 'TestCase'を呼び出すと' TestCase'内に格納されている全てのオブジェクトがリストアップされます –

答えて

0

これは、このラインのhappenningされています

se = this.settings; 

あなた$(document).ajaxSuccess(...)方法の範囲内thisはjQueryオブジェクト、いないのTestCase対象となります。

se = TestCase.settings;

+0

あなたの提案では動作していないようです。 –

関連する問題