2009-06-12 71 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); 
      } 
     });  
});