jQuery内容改变了没有初始化函数

时间:2016-09-03 11:15:18

标签: javascript jquery admin

我正在创建一个有侧栏的管理员网站。如果单击侧边栏,它将使用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();
}

1 个答案:

答案 0 :(得分:0)

在ajax成功之后你没有打电话给rj.initDataTable。试试:

rj.contChange = function(cont,location){
    $('#page-wrapper').html(cont);
    history.pushState({},{},location);
    rj.initDataTable();
};