我正在这个网站上开发一个基于 ajax 的网站,我已经通过 ajax 调用记录了所有请求的页面。经过一个小时的搜索,我得到了一个 Histroy.js 库来管理我的状态。但我的问题是获取调用 ajax 的元素并只更新一个 div 块。所以我想要这样的东西。
<a href="a.php" class="ajax" data-block-to-update="a_block">
<div id="a_block">
当用户单击此链接时,应该进行 ajax 调用,在得到响应后,我必须更新 id 为“a_block”的 div
这是我的脚本
<script>
$(document).ready(function(){
var History = window.History;
var State = History.getState();
var $log = $('#log');
History.pushState({state:'1',rand:Math.random(),content:$('#main').html(),block:'main'}, 'index', State.url);
//History.log(State.data, State.title, State.url);
$('.ajax').live('click',function(){
var gen_url = $(this).attr('href');
var bl = $(this).attr('data-block');
$.ajax({
url: gen_url,
success: function(data) {
console.log($(this));
$('#'+bl).html(data);
History.pushState({state:gen_url,rand:Math.random(),content:data,block:bl}, gen_url, gen_url);
}
});
return false;
});
$.ajaxSetup({
});
$(document).bind("ajaxComplete", function(e, xhr, settings){
// need to get element which make ajax request
console.log(xhr);
//var obj = $(e.target.activeElement);
//alert(obj.attr('data-block'));
});
History.Adapter.bind(window, 'statechange', function() {
var State = History.getState();
if(State.data.content!="" && State.data.block!="")
{
//History.log(State.data, State.title, State.url);
$('#'+State.data.block).html(State.data.content);
}
else
return false;
});
});
</script>
如何在“ajaxComplete”事件处理程序中获取调用 ajax 请求的元素?