JQUERY AJAX LOAD函数错误

我使用jquery ajax加载函数在first.php中加载了一个second.php文件</ p>

$(“。divclass”)。click(function(){
$(“#divid”)。load('second.php',{id:$(this).attr('id')} );
// alert(“view Clicked”);
}); </ p>

second.php在first.php文件成功中加载了第二个php内容。</ p> \ n

但是second.php包含一些jquery函数...
in second.php </ p>

$(document).ready(function(){
alert( “第二个文件jquery”);
});

这不起作用...
and
Back
this back javascript也无法正常加载first.php
但是两者都直接工作时 调用second.php </ p>

做什么</ p>
</ div>

展开原文

原文

I loaded a second.php file in first.php using jquery ajax load function

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

the second.php loaded second php content in first.php file success.

but second.php contains some jquery function... in second.php

$(document).ready(function(){ alert("second document jquery"); });

this not working... and Back this back javascript also not working when load in first.php but both working when directly calling second.php

what to do

3个回答



你的第二个文件 - 我认为它是HTML的片段而不是完整的文档 - 不会得到“准备好”的事件 ,因为你只是在修改DOM。 如果您需要运行一些嵌入式Javascript,只需将其直接放在片段末尾的标签中:</ p>

 &lt; div id ='stuff'&gt; 
&lt; ; - - ... ---&gt;
&lt; / div&gt;
&lt; script&gt;
alert(“我刚刚加载”);
&lt; / script&gt;
</ code> < / pre>

jQuery将确保在将片段添加到DOM时运行Javascript块。</ p>
</ div>

展开原文

原文

Your second file — which I presume is a fragment of HTML and not a complete document — is not going to get a "ready" event, because you're just modifying the DOM. If you need some embedded Javascript to run, just put it directly in a tag at the end of the fragment:

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

jQuery will make sure that the Javascript block runs when the fragment is added to the DOM.

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



second.php中的javascript不会像那样运行,为什么不只使用成功函数?</ p>

  $(“。divclass”)。click(function(){
$('#divid')。load('second.php',{id:$(this)。 attr('id')},function(){
alert('second document jquery');
});
});
</ code> </ pre>
</ div>

展开原文

原文

The javascript in second.php won't run like that, why don't you just use the success function?

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

douhuang75397
douhuang75397 好的,看看getScript() - api.jquery.com/jQuery.getScript
10 年多之前 回复
doutan3040
doutan3040 在second.php中有一些动态操作,它们在first.php中加载,就像点击second.php中的任何特定div一样
10 年多之前 回复



使用 $。get </ code>代替 load </ code>:</ p>

  $(“。divclass”)。click(function(){
var elmt_id = $(this).attr('id');
$ .get('second.php' ,
{id:elmt_id,nbRandom:Math.random()},
function(data){
$(“#divid”)。html(data);
});
}); \ ñ</代码> </ PRE>

为什么呢? 因为 load </ code>会从加载的页面中删除任何javascript。 $。get </ code>将来自 second.php </ code>的所有内容,任何js代码都将被执行。</ p>

我使用的代码就像 在我的所有项目中。 加载的页面有jQuery DOM就绪块代码,并且全部工作。</ p>

在上面的代码中,我添加了第二个参数。 目的只是为了防止IE中的缓存。 选择 second.php </ code>不会使用的名称。</ p>
</ div>

展开原文

原文

Use $.get instead of load:

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

Why? Because load will strip out any javascript from loaded page. $.get will put all content from second.php, any js code there will be executed.

I use the code like above in all my project. The page that loaded have jQuery DOM ready block code, and all worked.

In my code above, I add second parameter. The purpose is just to prevent caching in IE. Choose a name that will not be used by second.php.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问