0

我在 Jquery 中使用 e.preventDefault() 将 html 页面加载到 . html 页面有一些 Ajax 操作,可以从服务器获取数据。我得到它可以显示页面,但不能显示它获得的 Ajax 数据。在我看来,页面显示发生在 ajax 回调数据之前。但是如果没有 e.preventDefault,当单击链接时,页面会打开一个新页面,并且它可以处理从 ajax 页面返回的所有数据。任何延迟加载页面的解决方案或帮助。

$(document).ready(function() {
    $('a').click(function (e) {                    
        $("#content").load($(this).attr("href"));               
        e.preventDefault();      
    });             
}); 
4

1 回答 1

0

最可能的原因是您正在加载的页面触发 ajax 请求作为事件处理程序的一部分。例如

$(document).ready(function(){
   fetchDataByAjax();
}

但是,当您通过 ajax 加载它时,该事件不会被触发。文档就绪事件已经发生并且只会发生一次。

为了使其正常工作,您需要将 javascript 添加到一个公共位置并将其包含在两个页面中。在一个中,您仍然会执行 document.ready 中的方法或您使用过的任何方法),而在另一个中,您将在将 html 插入 #content 时执行它

于 2013-05-15T14:02:44.323 回答