最近遇到一个特稀奇的一件事情,通过ajax-path获取出来的列表数据,后面自定义的链接跳转按钮无法正常跳转。
总结一下,网页加载与jquery的元素绑定机制是这样的,页面(document)加载完成后,页面附带的所有jquery js文件会对页面内容进行筛选绑定各个功能,ajax获取出来的新页面需要重新绑定js事件才能进行响应,否则就会出现前面的错误,链接地址无法正常跳转。
下面是修改的代码。
var centent = $('.ajax-content');
var url = centent.attr('ajax-path');
function getContent(exectime){
var parm = {};
parm['mode'] = mode;
$.ajax({
type: "GET",
url: url,
data: parm,
dataType: "html",
success: function(data) {
centent.html(data);
$('li.delete a').once().click(function(){
return confirm('确定要执行删除操作!');
});
},
complete: function() {
Drupal.behaviors.bootstrapDropdown.attach(context); // 注意这里:页面加载完成后,需要对这部分html进行事件绑定
}
});
}
getContent(timestamp);
留作记录。