-1

このような投稿が他にもあることは知っていますが、他の人の質問について質問するのが適切かどうかはわかりません。何をすべきかという私の質問に対する答えを見つけたと思うリンクは次のとおりです: other question。ページの最後の解決策は、おそらく使用するものだと思います。

まだ残っている私の質問は、これを私のシナリオにどのように適用するかです。私のスクリプトはすべて外部関数内に含まれています。これは、次の概念に基づいています。

jQuery.noConflict();
jQuery(function($) {

    var Engine = {
        utils : {
            functionName : function(){
                // Do stuff in here
            },
            functionName2 : function(){
                // do something else    
            }
        },
        ui : {
            functionName : function(){
                // Do stuff in here
            },
            functionName2 : function(){
                // do something else    
            }
        },
        fixes : {
            functionName : function(){
                // Do stuff in here
            },
            functionName2 : function(){
                // do something else    
            }
        },
        tweaks : {

            functionName : function(){
                // Do stuff in here
            },
            functionName2 : function(){
                // do something else    
            }
        }
    };


    Engine.utils.functionName();
    Engine.utils.functionName2();

    Engine.ui.functionName();
    Engine.ui.functionName2();

    Engine.fixes.functionName();    
    Engine.fixes.functionName2();   

    Engine.tweaks.functionName();
    Engine.tweaks.functionName2();

});

私は最終的に、ajax 呼び出しがコンテンツを変更した後にスクリプトが機能しないという問題を解決しようとしています。リンクされた質問は「jquery : trigger $document.ready (変更できない AJAX コードが実行されるため)」です。その答え、特に最後の答えは私が探しているもののようですが、私のシナリオでそれを機能させる方法がわかりません。

4

1 に答える 1

0

on()を使用した委任を使用して答えを見つけました。

jQuery.noConflict();
function scriptlist() {
    var $ = jQuery;
    var Engine = {
        utils : {
            functionName : function(){
                // Do stuff in here
            },
            functionName2 : function(){
                // do something else    
            }
        },
        ui : {
            functionName : function(){
                // Do stuff in here
            },
            functionName2 : function(){
                // do something else    
            }
        },
        fixes : {
            functionName : function(){
                // Do stuff in here
            },
            functionName2 : function(){
                // do something else    
            }
        },
        tweaks : {

            functionName : function(){
                // Do stuff in here
            },
            functionName2 : function(){
                // do something else    
            }
        }
    };


    Engine.utils.functionName();
    Engine.utils.functionName2();

    Engine.ui.functionName();
    Engine.ui.functionName2();

    Engine.fixes.functionName();    
    Engine.fixes.functionName2();   

    Engine.tweaks.functionName();
    Engine.tweaks.functionName2();

};

jQuery('body').on('change click.productSubmitInput',function(){
    jQuery.ready(scriptlist());
});
scriptlist();

このように、change()イベントによって引き起こされたコンテンツの更新後、またはクラス「productSubmitInput」のボタンがクリックされたときに、すべてのスクリプトが再バインドされます。

于 2012-04-18T17:38:35.860 に答える