我在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();
});
});
答案 0 :(得分:0)
最可能的原因是您正在加载的页面触发ajax请求作为事件处理程序的一部分。 E.g。
$(document).ready(function(){
fetchDataByAjax();
}
然而,当您通过ajax加载它时,该事件将不会被触发。文件就绪事件已经发生,只会发生一次。
为了使其工作,您将需要将javascript添加到一个公共位置并将其包含在两个页面中。在一个你仍然会执行document.ready或你曾经使用过的方法中的方法,而在另一个中,当你将html插入#content
时,你将执行它。