一次。好吧,我也在使用pushState脚本,我正在使用jquery 1.6.2,但它正在使用.live(),但是使用jquery的v2.0.3,它已被弃用。所以,我不知道如何更换它,看:
$('.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);
});
});
});
答案 0 :(得分:1)
像这样:
$(document).on('click', '.a', function(e){
history.pushState(null, null, this.href);
replacePag(this.href);
e.preventDefault();
$(window).bind('popstate', function(){
replacePag(location.pathname);
});
});
您需要绑定到文档以在添加新元素时选择它们。
希望这有帮助。
答案 1 :(得分:1)
当事件“冒泡到”父元素时,on函数允许您通过在另一个元素上处理它们来绕过它。在这个例子中,我们可以说文档元素 - 您可以选择更具体的共同父级。
试试这个:
$(document).on('click','.a', function(e){
history.pushState(null, null, this.href);
replacePag(this.href);
e.preventDefault();
$(window).bind('popstate', function(){
replacePag(location.pathname);
});
});