e.preventDefault会在没有Ajax数据的情况下加载空页面

时间:2013-05-15 13:57:27

标签: jquery

我在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();      
    });             
}); 

1 个答案:

答案 0 :(得分:0)

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

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

然而,当您通过ajax加载它时,该事件将不会被触发。文件就绪事件已经发生,只会发生一次。

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

时,你将执行它。
相关问题