再次。好吧,我也在做 pushState 脚本,我用 jquery 1.6.2 做,但它用 .live() 但用 v2.0.3 的 jquery 它已被弃用。所以,我不知道如何替换它,看:
$('.a').live('click', function(e){
history.pushState(null, null, this.href);
replacePag(this.href);
e.preventDefault();
$(window).bind('popstate', function(){
replacePag(location.pathname);
});
});
当我使用一个带有 .a 类的元素运行它时,它工作正常,但我的页面有很多 .a 元素。我用 .on() 尝试过,但都不起作用。
$('.a').on('click', function(e){
history.pushState(null, null, this.href);
replacePag(this.href);
e.preventDefault();
$(window).bind('popstate', function(){
replacePag(location.pathname);
});
});
如果你能帮助我,谢谢你的帮助。
好吧,我的脚本是:
$(function(){
var replacePag = function(ur) {
$.ajax({
url: ur,
type: 'get',
dataType: 'html',
success: function(dat){
var domm = $(dat);
var titl = domm.filter('title').text();
var htm = domm.filter('#body').html();
$("#body").fadeOut(100,
function(){
$(this).html(htm);
$('title').text(titl);
}).fadeIn( 1000 );
}
});
}
$('.a').live('click', function(e){
history.pushState(null, null, this.href);
replacePag(this.href);
e.preventDefault();
$(window).bind('popstate', function(){
replacePag(location.pathname);
});
});
});