使用jQuery加载动态加载的内容会清除现有的html

时间:2012-04-03 21:50:02

标签: jquery

目前我正在尝试创建一个设置,在主设备中加载页面内容,以避免为每个链接刷新页面。

我对点击的每个链接使用jQuery加载,以便链接加载到#main。 (显然,完成后不会是所有链接。)

直接访问的页面工作正常,但如果您尝试使用此加载链接,那么它将正确加载内容,但仅显示在视图源中加载的HTML ,我在这里做错了吗?

$("body").on("click", "a", function(){

    $("#footer, #main").fadeOut('fast');

    $("#main").load($(this).attr("href"), function(){

        $("#main, #footer").fadeIn('slow');

    });

    return false
});

2 个答案:

答案 0 :(得分:2)

导致.load()此问题的问题是,您所包含的文件包含<script></script>个标记。

这些干扰了Javascript,它无法应对导致页面错误。

要停止此问题,您必须从已加载的文件中删除<script></script>标记。

答案 1 :(得分:1)

你淡出了主人,并没有再次褪色...
使用此:

$("body").on("click", "a", function(){    
    $("#footer, #main").fadeOut('fast');    
    $("#main").load($(this).attr("href"), function(){    
        $("#main").fadeIn('slow'); // <======================
        //$(this).fadeIn('slow'); this isn't the main object!
        $("#footer").fadeIn('slow');    
    });    

    return false
});
回调中的

this不是DOM元素!!!