2010-02-02 111 views
1

我使用jQuery AJAX加載功能加載在first.php一個second.php文件JQUERY AJAX LOAD功能錯誤

$( 「divclass 」)。點擊(函數(){ $(「 #DIVID」) .load('second.php',{id:$(this).attr('id')}); // alert(「view Clicked」); });

second.php加載第二個php內容在first.php文件中成功。

但second.php包含second.php

一些jQuery函數... $(文件)。就緒(函數(){ 警報( 「第二個文檔的jQuery」);} ) ;

這不工作... 和 返回 這回當負載first.php 但雙方工作時,直接調用second.php的JavaScript還沒有工作

做什麼

回答

1

你的第二個文件—,我認爲它是HTML的一個片段,而不是一個完整的文檔—不會得到一個「就緒」的事件,因爲你只是修改DOM。如果你需要一些嵌入的JavaScript運行,只是把它直接在標籤的片段末端:

<div id='stuff'> 
    <!-- ... ---> 
</div> 
<script> 
    alert("Hi I have just been loaded"); 
</script> 

jQuery將確保JavaScript的運行塊時,片段被添加到DOM。

+0

即時通訊添加,編輯,更新編。 首先,我在表 顯示列表WHN我在列表中點擊一個特定的名稱,它加載在人體內含量的人的細節無需重新加載頁面 所以第二頁包含視圖上特定的ID(行) 然後來編輯部分,當點擊編輯選項first.php(默認列表頁面) 它加載d編輯身體內容的PHP .. 當點擊更新它執行另一個jquery ajax函數發佈數據更新(即更新。php) 我的問題是在編輯頁面jquery發佈更新不工作.. 不僅更新,加載的php中的任何jquery nt工作.. – udhaya 2010-02-02 15:59:08

+0

使用'$ .get'和'$ .post加載AJAX內容'(也是'$ .ajax')會得到「準備就緒」事件。另一方面,'load'會去掉任何javascript代碼,所以不會執行加載文件中的代碼。請參閱我的解決方法。 – 2010-02-03 12:36:51

0

second.php中的JavaScript不會像那樣運行,爲什麼不使用成功函數?

$(".divclass").click(function(){ 
    $('#divid').load('second.php', { id : $(this).attr('id') }, function() { 
    alert('second document jquery'); 
    }); 
}); 
+0

second.php中有一些動態操作,它在first.php 中加載,就像點擊second.php中的任何特定的div – udhaya 2010-02-02 15:08:10

+0

好吧,看看getScript() - http://api.jquery.com/jQuery。 getScript加入/ – fire 2010-02-03 08:58:18

0

使用$.get而不是load

$(".divclass").click(function(){ 
    var elmt_id = $(this).attr('id'); 
    $.get('second.php', 
     { id: elmt_id, nbRandom: Math.random() }, 
     function(data){ 
      $("#divid").html(data); 
     }); 
}); 

爲什麼?因爲load會從加載頁面中刪除任何javascript。 $.get將把所有內容從second.php,任何js代碼將執行。

我在我的所有項目中都使用類似上面的代碼。加載的頁面具有jQuery DOM就緒塊代碼,並且都工作。

在我上面的代碼中,我添加了第二個參數。目的只是爲了防止在IE中緩存。選擇一個不會被second.php使用的名稱。