我正在创建一个有侧栏的管理员网站。如果单击侧边栏,它将使用ajax请求更改主内容,如果成功,则执行$('#page-wrapper')。html(content);例如,内容的id为“#content”。 我无法在更改的内容上运行函数,如$(#content).dataTable();.请帮忙。
// Function to CALL Ajax
rj.ajaxCall = function(options){
// toSend url callbacks() callerror()
console.log('ajaxCall');
$.ajax({
type : 'POST',
data : options.toSend,
url : options.url,
encode : true,
replace : true,
success : function(data){options.callbacks(data);},
error : function(e){options.callerror(e);}
});
};
// function to change main content on click of side bar
rj.sidebar = function(){
console.log('sidebar');
$(document).ready(function(){
$('#side-menu li a').on('click',function(event){
console.log('side bar clicked');
event.preventDefault();
var loc = $(this).attr('location');
console.log(loc);
if(loc !== undefined && loc !== '#'){
var request = {
toSend: {isCont:1},
url:loc,
callbacks: function(d){rj.contChange(d,loc);},
callerror: function(er){alert('Network Error. Please try again'); }
};
rj.ajaxCall(request);
}
});
});
};
//function to change the main content
rj.contChange = function(cont,location){
$('#page-wrapper').html(cont);
history.pushState({},{},location);
};
// function to load DATA TABLE Js if content has id #dataTables-example
rj.initDataTable = function(){
console.log('LOAD DATA TABLE');
$('#dataTables-example').DataTable({responsive: true});
};
// execute javascripts
$(window).ready(function(){
rj.initDataTable();
});
if ( $('#wrapper').length > 0 ){
rj.initDataTable();
rj.sidebar();
}
答案 0 :(得分:0)
在ajax成功之后你没有打电话给rj.initDataTable
。试试:
rj.contChange = function(cont,location){
$('#page-wrapper').html(cont);
history.pushState({},{},location);
rj.initDataTable();
};