2012-03-20 103 views
1

我有一個jQuery函數,可以在單擊元素時將頁面加載到div中。就像這樣:帶有外部頁面的jQuery ajax加載頁面

$("#viewID").change(function(){  

      $.ajax({ 
       type: "POST", 
       url:"advOptions_lv.cfm", 
       data: {viewID: $(this).val()}, 
       success: function(data){ 
        $("#dataView").html(data); 

       } 
      }); 


    }); 

,我需要裝載一些JS代碼,在一個名爲advOptions.js另一個外部文件的頁面。我已經試過在原始頁面中加載外部js頁面,但jQuery調用不起作用。所以我將它添加到advOptions_lv.cfm頁面。當我這樣做時,每次點擊viewID元素並加載頁面時,我都會在螢火蟲中看到它的調用。

我的問題是,在advOptions.js文件中有一個基本的ajax表單提交功能,像這樣$.post('saveView.cfm', $("#newDataViewForm").serialize() ,function(data){ });。這是多次被解僱。這完全取決於外部頁面加載的次數。

我的問題是,獲得外部js頁面以使用jQuery ajax調用加載頁面的最佳方式?如果不是,我應該怎麼做?

對此的任何幫助將是偉大的。

感謝

+0

我終於搞清楚了。我仍然在外部頁面上加載了.js文件,但是另外一個問題是它多次觸發了jQuery函數。 – Sequenzia 2012-03-20 18:23:33

回答

2

這將加載JS先用$.getScript,之後加載HTML。

$("#viewID").change(function(){  
    $.getScript('advOptions.js', function(){ 
     $.ajax({ 
      type: "POST", 
      url:"advOptions_lv.cfm", 
      data: {viewID: $(this).val()}, 
      success: function(data){ 
       $("#dataView").html(data); 
      } 
     }); 
    }); 
}); 
+0

感謝您的幫助,但這是行不通的。它正在加載js頁面,但是'advOptions_lv.cfm'頁面根本沒有加載? – Sequenzia 2012-03-20 12:41:51

+0

Ups,更新了我的答案,現在應該可以工作。你必須直接傳遞成功函數,而不是在一個對象中。 – Marc 2012-03-21 02:03:59