Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单个文件中的Javascript函数导致冲突_Javascript_Jquery - Fatal编程技术网

单个文件中的Javascript函数导致冲突

单个文件中的Javascript函数导致冲突,javascript,jquery,Javascript,Jquery,我将所有JavaScript函数都放在一个名为site.js的文件中 该文件在我的主布局页面的底部声明,以便更快地加载 但是,我注意到,除非我在文件中切换它们的顺序,否则我的一些函数无法工作。例如,以下两个函数的顺序会阻止datetimepicker小部件工作 $(function() { $(".js-multi-select").select2(); }); $(function () { $('#start_dt').datetimepicker({ showToday

我将所有JavaScript函数都放在一个名为site.js的文件中

该文件在我的主布局页面的底部声明,以便更快地加载

但是,我注意到,除非我在文件中切换它们的顺序,否则我的一些函数无法工作。例如,以下两个函数的顺序会阻止datetimepicker小部件工作

$(function() {
  $(".js-multi-select").select2();
});

$(function () {
  $('#start_dt').datetimepicker({
     showTodayButton: true,
     format: 'D MMM YYYY HH:mm',
     defaultDate: moment().hours(0).minute(0)
   });
});
如果我切换顺序并将datetimepicker函数置于select2功能之前,那么它似乎可以工作

$(function () {
  $('#start_dt').datetimepicker({
     showTodayButton: true,
     format: 'D MMM YYYY HH:mm',
     defaultDate: moment().hours(0).minute(0)
   });
});

$(function() {
  $(".js-multi-select").select2();
});
注意,我有datetimepicker字段的页面没有select2下拉列表字段,我有select2下拉列表的页面并不总是有datetimepicker字段。我不希望每个函数都有十几个javascript文件,这就是为什么我把它们都放在一个文件中的原因


为什么上面的函数会以这种方式运行?有什么修复方法可以使它们在不考虑声明顺序的情况下工作。

只需删除第二个doc.ready函数,并将代码放入第一个函数中即可

$(function () {
   $('#start_dt').datetimepicker({
     showTodayButton: true,
     format: 'D MMM YYYY HH:mm',
     defaultDate: moment().hours(0).minute(0)
  });
  $(".js-multi-select").select2();
});

只需删除第二个doc.ready函数,并将代码放入第一个函数中

$(function () {
   $('#start_dt').datetimepicker({
     showTodayButton: true,
     format: 'D MMM YYYY HH:mm',
     defaultDate: moment().hours(0).minute(0)
  });
  $(".js-multi-select").select2();
});
你有可能会遇到别的事情

因为在上面的页面中,我尝试将类js-example-basic-single重命名为js-example-basic-single1,以便select2的选择器为空。select2调用不会产生js错误

第二,我重新安排了通话顺序,但一切都如期进行

因此,它应该是另外的东西

你有可能会遇到别的事情

因为在上面的页面中,我尝试将类js-example-basic-single重命名为js-example-basic-single1,以便select2的选择器为空。select2调用不会产生js错误

第二,我重新安排了通话顺序,但一切都如期进行



因此,它应该是另外的东西

控制台中有错误吗?我们可能需要更多的信息,比如JS控制台中出现的任何不起作用的页面,等等。我猜select2出错了。js控制台中有什么?为什么要定义$function{}两次?尝试添加$.js-multi-select.select2;在日期时间选择器之后function@DavidLaberge这可能是一个好主意,除非在JS构建步骤中连接文件,但不应该导致问题。控制台中是否有错误?我们可能需要更多信息,就像JS控制台中不起作用的页面上的任何信息一样,等等,我猜select2出错了。js控制台中有什么?为什么要定义$function{}两次?尝试添加$.js-multi-select.select2;在日期时间选择器之后function@DavidLaberge这可能是一个好主意,除非在JS构建步骤中连接文件,但不应该导致问题。控制台中是否有错误?我们可能需要更多信息,就像JS控制台中不起作用的页面上的任何信息一样,等等,我猜select2出错了。js控制台中有什么?为什么要定义$function{}两次?尝试添加$.js-multi-select.select2;在日期时间选择器之后function@DavidLaberge这可能是一个好主意,除非在JS构建步骤中连接文件,但不应该导致问题;可以有多个没有问题的$function{…},这是无关的;可以有多个没有问题的$function{…},这是无关的;可以有多个$function{…}没有问题。我使用的datetimepicker是引导datetimepicker,问题是datetimepicker字段未选择2。我使用的datetimepicker是引导datetimepicker,问题是datetimepicker字段未选择2。我使用的datetimepicker是引导datetimepicker,问题是datetimepicker字段未选择2。