jquery推荐做ajax导航的方法

时间:2012-11-23 06:52:34

标签: javascript jquery html ajax

jquery推荐的做ajax导航的方法

我刚尝试了这个简单的jquery ajax代码,以ajax的方式加载页面中的所有链接。

$('a').click(function(e){
        e.preventDefault();
        url = $(this).attr('href');
        $('body').fadeTo('slow', 0.2); 
        $('body').load(url, function(data){
            $(this).fadeTo('slow', 1, function(){
                $(this).html(data);
                scroll(0,0);
            });
        });
    });

[页面中的链接指向当前域,且不存在外部链接]

页面加载按预期工作,但Facebook,LinkedIn,pinterest按钮的脚本无法加载。

我认为这不是最安全的ajax导航方式,我相信其他JS文件,内联JavaScripts会导致错误。

http://davidwalsh.name与mootools有一些很好的ajax导航工作。我正在尝试使用jquery实现相同的目标。

网站成功加载并执行每个脚本,可以看到没有加载特定脚本的ajax工作。

有没有安全的方法来实现这一点,确保ajax加载的页面正常工作?

1 个答案:

答案 0 :(得分:0)

您应该调用在加载处理程序中附加脚本的函数,因此它会在每次加载时重新附加所有DOM脚本。

F.ex,如果你有这个代码:

$(document).ready(function() {
    $('#facebook').doFacebook();
    $('#twitter').doTwitter();
});

将其更改为:

var onload = function() {
    $('#facebook').doFacebook();
    $('#twitter').doTwitter();
};
$(document).ready(onload);

然后,只要onload获得新内容,就可以致电body

内联脚本应根据docs执行。

您可能还想了解如何使用.pushState操纵浏览器历史记录和网址:

https://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history#Adding_and_modifying_history_entries

有一些不错的jQuery插件,如果你稍微谷歌一点,就可以跨浏览器的方式添加这个功能。