我有这个功能:

$("#loading_button").click(function(){
    (function() {
        var s = document.createElement("script");
       s.type = "text/javascript";
        s.async = true;
        s.src = '//some_src/';
        var x = document.getElementsByTagName('script')[0];
        s.onload = function() {
            alert("OK");
            $('#my_button').trigger('click');
        };
        x.parentNode.insertBefore(s, x);
    })();
});


有了警报,一切正常。会自动单击src脚本中的#my_button。问题是,一旦我删除了alert()触发器,就不再调用click触发器。

知道为什么吗?

最佳答案

尽量不要直接调用您的代码,而是将其绑定到document.ready;

$(document).ready(function(){ // <-- look here
    var s = document.createElement("script");
    s.type = "text/javascript";
    s.async = true;
    s.src = '//some_src/';
    var x = document.getElementsByTagName('script')[0];
    s.onload = function() {
        alert("OK");
        $('#my_button').trigger('click');
    };
    x.parentNode.insertBefore(s, x);
}); // <-- and here

10-05 21:05
查看更多