$(document).ready()没有为加载ajax的内容执行

时间:2010-02-04 14:51:42

标签: jquery

在返回的部分页面中不执行document.ready的原因是什么? 它工作正常2次,但第3次更新html后没有任何反应:

alert(html);
alert($(PopUpItem));
$(PopUpItem).html(html);
alert('in set popup html completed'); 

我执行了所有警报,PopupItem和html具有正确的值。 我使用JQuery通过$ .post执行服务器调用。

此外,如果发生某些语法错误,我是否可以使用错误处理程序?

4 个答案:

答案 0 :(得分:12)

在返回的AJAX中,您不需要$(document).ready()调用。 DOM已经加载。像这样简单的东西可以解决这个问题:

<script type="text/javascript">
// Do something here.
</script>

答案 1 :(得分:2)

您是说传递给html的{​​{1}}字符串包含$(PopUpItem).html()块,其中包含<script>吗?

如果是这样,document.ready(function() { ... });事件处理程序不会触发的原因是该脚本根本不运行。请参阅具有相同“第三次”行为的this question

不要将ready标记加载到标记中。它根本不是可靠的跨浏览器,jQuery或没有jQuery。

答案 2 :(得分:1)

document.ready仅在最初加载页面时执行。

为了拥有错误处理程序,您可以使用更多$ .ajax来执行ajax调用(http://api.jquery.com/jQuery.ajax/)。

答案 3 :(得分:0)

要将事件绑定到任何异步生成的元素,您应该查看livequery:http://docs.jquery.com/Plugins/livequery