2016-11-17 54 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文件,我編輯我的問題顯示: –