前言
这是一个页面加载顺序的问题,因为想引用一个现成的js文件做一下表格,但是这个js文件已经封装得很好了,所以直接修改js就有点复杂。但是如果直接在html里面写上<script>
标签,我使用ajax动态生成的DOM节点因为加载顺序的问题,无法被这个js文件初始化,导致这个表格出现了bug。
解决方案
看了一下国内的网站好像没有什么好的解决方案,用Stack Overflow搜了一下,解决方法确实很机智。链接在此
就是以DOM节点的方式添加script标签,这样你就能随时控制js文件的引入时机。
我的方案就是使用ajax的complete函数,在所有节点生成完毕之后引入该js文件。
initFun();
//初始化界面
function initFun() {
$.ajax({
method: "GET",
url: "some.php",
data: {
admin_id:id
},
success: function(res){
alert("初始化成功");
// TODO 处理res
},
error: function(){
alert("初始化方法异常");
},
complete: function() {
//处理好节点再绑定类的方法
delay_script_load();
}
});
}
function delay_script_load() {
var script = document.createElement('script');
script.src = "assets/pages/datatables.editable.init.js";
document.body.appendChild(script);
}