2017-05-25 32 views
0

我有一个带有2个脚本的html页面。jquery在一个文件完成后运行一个scrpict文件

<script type="text/javascript" src="script1.js"></script> 
<script type="text/javascript" src="script2.js"></script 

script1.js:

  function one() { 

        $.ajax({ 

         type: 'get', 
         url: 'one.txt', 
         success:function (data) { 

          alert(data); 

          }   
         }); 
     }; 

     one(); 

script2.js:

alert('Script1 Has Completed!"); 

因为SCRIPT1是异步的,SCRIPT1前SCRIPT2负荷。

我该如何让script2只在scrpipt1执行“alert(data)”后才能运行? (我想保持“scrpit1.js”和“script2.js”文件分开)。

UPD:也许误会。我想先从script1运行“alert(data)”,然后从script2运行“alert(”Script1 has Completed!“)”(我想从script2运行最后的警报,而不是scrpipt1 !!!)。

+0

不要使用'

0

你的第二个脚本将被直接执行,它不会等到你Ajax调用完成。你需要的是你可以调用一个函数,它不会直接执行,但是当它被称为,但它有它被称为

function two(){ 
    alert("ajax call done"); 
    } 
    function one() { 

    $.ajax({ 

     type: 'get', 
     url: 'one.txt', 
     success:function (data) { 

      two(); 

      }   
     }); 
    }; 

    one(); 

之前定义这就是所谓的程序编码

0

你应该这样做它就像这样

var script = document.createElement('script'); 
script.src = "script2.js"; 

... 
success:function (data) { 
    alert(data); 
    $("head").append(script);//$("body") 
} 
... 
相关问题