2009-06-12 75 views
0

我在使用jQuery与子页面的麻烦从AJAX页面

parent.html负荷child.html喜欢这么叫的jQuery contact.js

$(function() { 

    alert ("contact js hit"); 
} 

这偶尔会起作用。但我无法弄清楚它为什么会起作用的逻辑。我也试着在处理程序中添加一个ref到Jquery上。我觉得我在这里错过了一招。

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

$( '#N-电子邮件')点击(函数(){ 变种E =本; 复位(E);

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

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

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

}); 
+0

我修正了一个错字(我希望)。您最初将锚标记的ID设置为“a-email”,但在您的js中将其称为“n-email”。 – tvanfosson 2009-06-12 12:09:28

+0

偶尔有什么作品? alert()?或.load(“child.htm”)? – jrharshath 2009-06-12 12:12:23

+0

快速提示:代替$('a#n-email'),编写$('#n-email') – jrharshath 2009-06-12 12:12:54

回答

2

首先,你需要。使用成功财产放在一个回调函数在jQuery的阿贾克斯 其次,你不能只是把JavaScript的连接一个HTML元素只是doenst工作你可以尝试使用eval 试试这个代码作为开始:。

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

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

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