1

这是脚本:

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

我希望能够像上面的示例一样运行 script.init(),但是如果我这样做,我必须单击两次按钮才能获取脚本。- 当它第一次运行 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 回答