我已经构建了一个具有推送状态的应用程序。一切正常。但是在某些情况下,我的 jquery 函数会触发多次。那是因为当我调用推送状态时,我为我调用的每个页面绑定了特定的 js 文件。这意味着当我在我的页面中冲浪时,相同的 js 函数会多次绑定到 html。
提示:我在我的 jquery 函数中使用了 documen.on,因为我需要我的函数通过 Ajax 绑定到动态打印的 HTML。
打印前尝试在push状态下使用off,没有成功!
这是我的代码:
var requests = [];
function replacePage(url) {
var loading = '<div class="push-load"></div>'
$('.content').fadeOut(200);
$('.container').append(loading);
$.each( requests, function( i, v ){
v.abort();
});
requests.push( $.ajax({
type: "GET",
url: url,
dataType: "html",
success: function(data){
var dom = $(data);
//var title = dom.filter('title').text();
var html = dom.find('.content').html();
//alert(html);
//alert("OK");
//$('title').text(title);
$('a').off();
$('.push-load').remove();
$('.content').html(html).fadeIn(200);
//console.log(data);
$('.page-loader').hide();
$('.load-a').fadeIn(300);
}
})
);
}
$(window).bind('popstate', function(){
replacePage(location.pathname);
});
提前致谢!