еще раз. Ну, я делаю также скрипт 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);
});
});
});
Функция 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);
});
});
Как это:
$(document).on('click', '.a', function(e){
history.pushState(null, null, this.href);
replacePag(this.href);
e.preventDefault();
$(window).bind('popstate', function(){
replacePag(location.pathname);
});
});
вам нужно привязать к документу, чтобы забрать новые элементы по мере их добавления.
Надеюсь это поможет.
a
элементы, а не классы .a
, попробуйте обновленный код :)
.live
на.on
дословно, вы должны.on
целевой элемент. Проверьте документы!