2012-03-20 104 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