从ajax页面调用jquery

时间:2009-06-12 11:57:40

标签: jquery

我在使用带有子页面的jQuery时遇到了麻烦

parent.html像这样加载child.html:即用户点击

<a href="#" id="n-email">

JQuery的

$('a#n-email').click(function() {


    $.ajax({
      type: "GET",
      url: "/scripts/contact.js",
      dataType: "script"
    });

    $('#content').load("child.htm");            

}); 

contact.js

$(function() {

    alert ("contact js hit");
}

这偶尔会奏效。但我无法弄清楚其工作原理的逻辑。我也尝试在处理程序上添加一个引用Jquery的引用。我觉得我在这里错过了一招。

感谢jake + lucus。我有以下工作。需要一个重构,但工作

$('#n-email')。click(function(){         var e = this;         复位(E);

    var mypage = $('#contentemail').load("email.php"); 

    $.ajax({
          type: "GET",
          url: "/scripts/contact.js",
          dataType: "script",
          success: function(mypage)
          {
              $(document).append(mypage);
          }
        });

    $('#contentemail').show();            

});

2 个答案:

答案 0 :(得分:2)

首先,您需要使用success属性在jQuery ajax中放置一个回调函数。 其次,你不能只是把javascript和html元素放在一起。那只是最好的工作。您可以尝试使用eval。 尝试使用此代码作为开始:

$('a #n-email').click(function() {
    $.ajax({
          type: "GET",
          url: "/scripts/contact.js",
          dataType: "script",
          success: function(value){eval(value)}
        });     
});

答案 1 :(得分:1)

使用$(document).append(content)将从内容中删除所有脚本标记并尝试评估它们。所以你可以去

$('a #n-email').click(function() {
    $.ajax({
          type: "GET",
          url: "/scripts/contact.js",
          dataType: "script",
          success: function(result)
          {
              $(document).append(result);
          }
        });     
});