Javascript getScript函数正在工作,但不运行';我得不到一些css

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] ===

因此,每次我在ajax上加载
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的哪个版本