最近遇到一個特稀奇的一件事情,通過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);
留作記錄。