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加载的页面正常工作?
答案 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
操纵浏览器历史记录和网址:
有一些不错的jQuery插件,如果你稍微谷歌一点,就可以跨浏览器的方式添加这个功能。