Javascript getScript函数正在工作,但不运行';我得不到一些css
因此,每次我在ajax上加载Javascript getScript函数正在工作,但不运行';我得不到一些css,javascript,php,jquery,css,ajax,Javascript,Php,Jquery,Css,Ajax,因此,每次我在ajax上加载getScript函数时,有些js正在工作,有些则没有。但是,如果我正在加载并尝试将其加载到我的footer.php上,它就会工作。但是我需要动态加载它,因为我使用ajax加载我的页面,每次我更改内容时都需要加载我的js文件,而且我的.js文件似乎没有从页面获取css。这是我加载脚本的代码 JS var base_url = window.location.origin; if (window.location.pathname.split('/')[1] ===
getScript
函数时,有些js正在工作,有些则没有。但是,如果我正在加载并尝试将其加载到我的footer.php上,它就会工作。但是我需要动态加载它,因为我使用ajax加载我的页面,每次我更改内容时都需要加载我的js文件,而且我的.js文件似乎没有从页面获取css。这是我加载脚本的代码
JS
var base_url = window.location.origin;
if (window.location.pathname.split('/')[1] === 'music' ||
window.location.pathname.split('/')[1] === 'musicsystem')
base_url = base_url + '/' + window.location.pathname.split('/')[1];
$(document).ready(function() {
$.ajax({
async: false,
url: base_url + '/dashboard/index',
success: function(data) {
var getScript = jQuery.getScript;
jQuery.getScript = function(resources, callback) {
var length = resources.length,
handler = function() {
counter++;
},
deferreds = [],
counter = 0,
idx = 0;
for (idx; idx < length; idx++) {
deferreds.push(getScript(resources[idx], handler));
}
jQuery.when.apply(null, deferreds).then(function() {
callback && callback();
});
};
var scripts = [
base_url + "/assets/bower_components/jquery/dist/jquery.min.js",
base_url + "/assets/bower_components/bootstrap/dist/js/bootstrap.min.js",
base_url + "/assets/bower_components/jquery-ui/jquery-ui.min.js",
base_url + "/assets/bower_components/datatables.net/js/jquery.dataTables.min.js",
base_url + "/assets/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js",
base_url + "/assets/bower_components/jquery-sparkline/dist/jquery.sparkline.min.js",
base_url + "/assets/plugins/jvectormap/jquery-jvectormap-1.2.2.min.js",
base_url + "/assets/plugins/jvectormap/jquery-jvectormap-world-mill-en.js",
base_url + "/assets/bower_components/jquery-knob/dist/jquery.knob.min.js",
base_url + "/assets/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js",
base_url + "/assets/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js",
base_url + "/assets/bower_components/jquery-slimscroll/jquery.slimscroll.min.js",
base_url + "/assets/bower_components/fastclick/lib/fastclick.js",
base_url + "/assets/dist/js/adminlte.min.js",
base_url + "/assets/dist/js/pages/dashboard.js",
base_url + "/assets/plugins/iCheck/icheck.min.js",
base_url + "/assets/dist/js/demo.js",
base_url + "/assets/js/dataTables.colReorder.min.js",
base_url + "/assets/dist/js/clipboard.js",
base_url + "/assets/js/audio.min.js",
base_url + "/assets/js/config.js",
base_url + "/assets/js/dropzone.js",
base_url + "/assets/js/howler.js",
base_url + "/assets/js/upload.js",
base_url + "/assets/js/player.js",
base_url + "/assets/js/songdraganddrop.js",
base_url + "/assets/js/pitching.js",
base_url + "/assets/js/share.js",
base_url + "/assets/js/alertify.js",
base_url + "/assets/bower_components/select2/dist/js/select2.full.min.js",
base_url + "/assets/js/newscript.js"
];
$.getScript(scripts, function(data, textStatus) {
$('#inside').html(data);
});
}
});
});
var base\u url=window.location.origin;
if(window.location.pathname.split(“/”)[1]=“music”||
window.location.pathname.split('/')[1]='musicsystem')
base_url=base_url+'/'+window.location.pathname.split('/')[1];
$(文档).ready(函数(){
$.ajax({
async:false,
url:base_url+'/dashboard/index',
成功:功能(数据){
var getScript=jQuery.getScript;
jQuery.getScript=函数(资源,回调){
var length=resources.length,
handler=函数(){
计数器++;
},
延期=[],
计数器=0,
idx=0;
for(idx;idx
也许下面的方法会更好,即使jQuery的函数getScript返回一个承诺,您也可以使用它。$。ajax也会返回一个承诺,因此您可以使用它
var base_url=window.location.origin
if (window.location.pathname.split('/')[1] === 'music' ||
window.location.pathname.split('/')[1] === 'musicsystem')
base_url = base_url + '/' + window.location.pathname.split('/')[1];
const getScripts =
resources => {
return jQuery.when.apply(
null
,resources.map(
resource =>
$.getScript(base_url + resource)
)
)
;
}
$(document).ready(function() {
$.ajax({
//async: false,//are you kidding? async false is still a thing???? I assume you'd like someone to hire you at some point in time right?
url: base_url + '/dashboard/index'
})
.then(
data => {
const scripts = [
//are you sure you'd want to load all the scripts?
//I'm pretty sure you don't need to load your libraries again
//would be simpler to write a js function that will initialize
//the new content that's on the page instead of this
"/assets/bower_components/jquery/dist/jquery.min.js",
"/assets/bower_components/bootstrap/dist/js/bootstrap.min.js",
"/assets/bower_components/jquery-ui/jquery-ui.min.js",
"/assets/bower_components/datatables.net/js/jquery.dataTables.min.js",
"/assets/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js",
"/assets/bower_components/jquery-sparkline/dist/jquery.sparkline.min.js",
"/assets/plugins/jvectormap/jquery-jvectormap-1.2.2.min.js",
"/assets/plugins/jvectormap/jquery-jvectormap-world-mill-en.js",
"/assets/bower_components/jquery-knob/dist/jquery.knob.min.js",
"/assets/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js",
"/assets/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js",
"/assets/bower_components/jquery-slimscroll/jquery.slimscroll.min.js",
"/assets/bower_components/fastclick/lib/fastclick.js",
"/assets/dist/js/adminlte.min.js",
"/assets/dist/js/pages/dashboard.js",
"/assets/plugins/iCheck/icheck.min.js",
"/assets/dist/js/demo.js",
"/assets/js/dataTables.colReorder.min.js",
"/assets/dist/js/clipboard.js",
"/assets/js/audio.min.js",
"/assets/js/config.js",
"/assets/js/dropzone.js",
"/assets/js/howler.js",
"/assets/js/upload.js",
"/assets/js/player.js",
"/assets/js/songdraganddrop.js",
"/assets/js/pitching.js",
"/assets/js/share.js",
"/assets/js/alertify.js",
"/assets/bower_components/select2/dist/js/select2.full.min.js",
"/assets/js/newscript.js"
];
$('#inside').html(data);//set the html before loading the scripts
return getScripts(scripts)
.then(x=>data);//return data after getscript is done
}
)
.then(
undefined
,err => console.warn("Failed:",err)//handle the error
);
});
也许下面的方法会更好,即使jQuery的函数getScript返回一个承诺,您也可以使用它。$。ajax也会返回一个承诺,因此您可以使用它 var base_url=window.location.origin
if (window.location.pathname.split('/')[1] === 'music' ||
window.location.pathname.split('/')[1] === 'musicsystem')
base_url = base_url + '/' + window.location.pathname.split('/')[1];
const getScripts =
resources => {
return jQuery.when.apply(
null
,resources.map(
resource =>
$.getScript(base_url + resource)
)
)
;
}
$(document).ready(function() {
$.ajax({
//async: false,//are you kidding? async false is still a thing???? I assume you'd like someone to hire you at some point in time right?
url: base_url + '/dashboard/index'
})
.then(
data => {
const scripts = [
//are you sure you'd want to load all the scripts?
//I'm pretty sure you don't need to load your libraries again
//would be simpler to write a js function that will initialize
//the new content that's on the page instead of this
"/assets/bower_components/jquery/dist/jquery.min.js",
"/assets/bower_components/bootstrap/dist/js/bootstrap.min.js",
"/assets/bower_components/jquery-ui/jquery-ui.min.js",
"/assets/bower_components/datatables.net/js/jquery.dataTables.min.js",
"/assets/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js",
"/assets/bower_components/jquery-sparkline/dist/jquery.sparkline.min.js",
"/assets/plugins/jvectormap/jquery-jvectormap-1.2.2.min.js",
"/assets/plugins/jvectormap/jquery-jvectormap-world-mill-en.js",
"/assets/bower_components/jquery-knob/dist/jquery.knob.min.js",
"/assets/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js",
"/assets/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js",
"/assets/bower_components/jquery-slimscroll/jquery.slimscroll.min.js",
"/assets/bower_components/fastclick/lib/fastclick.js",
"/assets/dist/js/adminlte.min.js",
"/assets/dist/js/pages/dashboard.js",
"/assets/plugins/iCheck/icheck.min.js",
"/assets/dist/js/demo.js",
"/assets/js/dataTables.colReorder.min.js",
"/assets/dist/js/clipboard.js",
"/assets/js/audio.min.js",
"/assets/js/config.js",
"/assets/js/dropzone.js",
"/assets/js/howler.js",
"/assets/js/upload.js",
"/assets/js/player.js",
"/assets/js/songdraganddrop.js",
"/assets/js/pitching.js",
"/assets/js/share.js",
"/assets/js/alertify.js",
"/assets/bower_components/select2/dist/js/select2.full.min.js",
"/assets/js/newscript.js"
];
$('#inside').html(data);//set the html before loading the scripts
return getScripts(scripts)
.then(x=>data);//return data after getscript is done
}
)
.then(
undefined
,err => console.warn("Failed:",err)//handle the error
);
});
我的.js文件似乎没有从页面获取css
。。。呃,什么css?你没有加载任何文件css@ShadowFiend-这不正是他正在做的事情吗(为什么他要用这个代码替换jQuery.getScript
,这肯定是个谜)@JaromandaX,我正在我的头上加载css。@Shadowfend我已经有了加载多个js的脚本,看起来我的.js文件没有从页面中获取css
。。。呃,什么css?你没有加载任何文件css@ShadowFiend-这不正是他正在做的事情吗(为什么他要用这个代码替换jQuery.getScript
,这肯定是个谜)@JaromandaX,我正在将css加载到我的头上。@Shadowfeind我已经有了加载多个jsHi的脚本,谢谢你。所以我想加载所有的js文件,因为我正在将它们用于每一个内容。我的一个大问题是。其中一些正在发挥作用。有些不起作用,我不知道为什么。顺便说一句,我试过你的猜测它对meit的body.js:66 Failed:TypeError:cannotreadproperty'then'不起作用undefined@RealRich如果在控制台中运行以下命令,$.getScript(“任意”)。那么它是否显示未定义?您正在使用哪个版本的jQuery($.fn.jQuery
)?产生错误的代码块是什么(单击错误右侧的链接)?这一行。然后(x=>数据)//完成getscript后返回数据我正在使用3.2.1Hi,谢谢。所以我想加载所有的js文件,因为我正在将它们用于每一个内容。我的一个大问题是。其中一些正在发挥作用。有些不起作用,我不知道为什么。顺便说一句,我试过你的猜测它对meit的body.js:66 Failed:TypeError:cannotreadproperty'then'不起作用undefined@RealRich如果在控制台中运行以下命令,$.getScript(“任意”)。那么它是否显示未定义?jQuery的哪个版本