2012-06-19 87 views
3

我不使用jQuery太大,也許這個冠軍並不能說明太多清楚我想要做的,但這裏有雲:jQuery的負載腳本,而不是調用內聯函數

$.ajax({ 
    url: 'my_action', 
    dataType: 'script', 
    beforeSend: function() { //can i not just call a script here instead? 
     if (1 == 1) //just an example 
     { 
      return false 
     } 
    }, 
    complete: function() { 
     console.log('DONE'); 
    } 
});​ 
beforeSend

所以,我想要調用腳本而不是內聯函數。這是因爲我的功能很長,它使我看起來雜亂的ajax代碼。

這可能嗎?

+0

你是什麼意思*調用腳本*?調用另一個函數或從外部文件調用腳本? – VisioN

回答

2

如下加載Ajax調用之前,外部JavaScript文件重寫你的要求。

$.ajax({ 
    url: 'my_action', 
    dataType: 'script', 
    beforeSend: function() { 
     $.getScript("/path/to/script.js", function() { 
      // you can call any function from the loaded file 
      console.log('DONE'); 
     }); 
    } 
});​ 
+0

感謝很多傢伙 – rix

+0

@gdoron他是我的經紀人:D – VisioN

5
$.ajax({ 
    url : 'my_action', 
    dataType: 'script', 
    beforeSend : foo // where foo is a function name. 

〔實施例:

function foo(){ 
    // Do your magic here. 
} 
+0

+1 mate excellent – thecodeparadox

+0

基本上,我通過php框架調用了這個ajax調用,並且在其中加載了內聯javascript,看起來很難看。所以我想知道一種方法來調用應用程序可以訪問的js文件中的函數,或者調用extenral腳本而不是函數。謝謝 – rix

+0

@rix。如果他們共享相同的範圍,這是可能的,如果他們不這不是... – gdoron