1

スクリプトは次のとおりです。

$("#button").click(function(){
    $.getScript('script.js', function(){
       script.init();
    });
});

上記の例のように script.init() を実行できるようにしたいのですが、このようにすると、スクリプトを取得するためにボタンを 2 回クリックする必要があります。- script.init() を最初に実行すると、まだロードされていないようです。

では、何かを実行する前に、スクリプトがロードされていることを確認するにはどうすればよいでしょうか?

4

2 に答える 2

3

これを試して:

$(window).load(function() {
    $.getScript('script.js', function() {
        $("#button").click(function() {
           script.init();
        });
    });
});

または、短縮形の代わりに jQuery.ajax 関数を使用してみてください。

$("#button").click(function () {
    $.ajax({
        url: "script.js",
        dataType: "script",
        success: function () { script.init(); }
    });
});
于 2012-06-11T23:31:01.470 に答える
0

関数名が文字列の場合、このコードを使用して関数を呼び出しました。

$.ajax({
    url: 'script.js',
    dataType: "script",
    success: function () { window["script"]["init"](); }
});

呼び出している関数にボタンを渡すこともできます。

$.ajax({
    url: 'scrpt.js',
    dataType: "script",
    context : this,
    success: function () { window["script"]["init"](this); }
});
于 2013-08-26T17:54:38.083 に答える