【问题标题】:JQUERY AJAX LOAD Function ErrorJQUERY AJAX LOAD 函数错误
【发布时间】:2011-01-12 04:19:35
【问题描述】:

我使用 jquery ajax 加载函数在 first.php 中加载了 second.php 文件

$(".divclass").click(function(){ $("#divid").load('second.php', { id : $(this).attr('id') }); // alert("view Clicked"); });

第二个.php在first.php文件中加载第二个php内容成功。

但是 second.php 包含一些 jquery 函数... 在 second.php 中

$(文档).ready(函数(){ alert("第二个文档 jquery"); });

这不起作用... 和 后退 在 first.php 中加载时,此返回的 javascript 也无法正常工作 但是在直接调用 second.php 时两者都可以工作

做什么

【问题讨论】:

    标签: php javascript jquery ajax load


    【解决方案1】:

    您的第二个文件(我认为它是 HTML 的片段而不是完整的文档)不会获得“就绪”事件,因为您只是在修改 DOM。如果你需要一些嵌入的 Javascript 来运行,直接把它放在片段末尾的标签中:

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

    jQuery 将确保在将片段添加到 DOM 时运行 Javascript 块。

    【讨论】:

    • 我正在添加、编辑、更新编。首先,当我单击列表中的特定名称时,我在表格中显示列表,它会在正文内容中加载人员详细信息而不重新加载页面,因此第二页包含特定 id(行)的视图,然后单击时来编辑部分first.php 中的编辑选项(默认列表页面)它会在正文内容中加载 d 编辑 php。当单击更新时,它会执行另一个 jquery ajax 功能以将数据发布到更新(即 update.php)我的问题是编辑页面中的 jquery发布更新不起作用..不仅更新,加载的php中的任何jquery都不起作用..
    • 使用$.get$.post(也称为$.ajax)加载的AJAX 内容将获得“就绪”事件。另一方面,load 将删除任何 javascript 代码,因此不会执行加载文件中的任何代码。请参阅我的解决方法。
    【解决方案2】:

    second.php中的javascript不会这样运行,你为什么不直接使用success函数呢?

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

    【讨论】:

    • 在 first.php 中加载的 second.php 中有一些动态操作,例如单击 second.php 中的任何特定 div
    【解决方案3】:

    使用$.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 使用的名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-11
      • 1970-01-01
      • 1970-01-01
      • 2010-10-15
      • 1970-01-01
      • 1970-01-01
      • 2012-09-14
      • 2011-01-07
      相关资源
      最近更新 更多