2010-02-02 84 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使用的名称。