2016-11-17 26 views
0

我有这样的功能:jQuery的的OnLoad - 怪异的行为

$("#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触发器。

任何想法为什么?

回答

2

尽量不要直接调用您的代码,而是将其绑定到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 
+0

嗨,亚历克斯,谢谢!问题是我需要加载按钮点击该JS文件,我编辑我的问题显示: –