在返回的部分页面中不执行document.ready的原因是什么? 它工作正常2次,但第3次更新html后没有任何反应:
alert(html);
alert($(PopUpItem));
$(PopUpItem).html(html);
alert('in set popup html completed');
我执行了所有警报,PopupItem和html具有正确的值。 我使用JQuery通过$ .post执行服务器调用。
此外,如果发生某些语法错误,我是否可以使用错误处理程序?
答案 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