在我的旧代码中,显示了使用jQuery 1.9.1和Bootstrap 3.3.6从spin.min.js版本2.3.2加载spinner。微调器正常显示在视图中。但是,当我使用Bootstrap将jQuery版本升级到3.4.1和4.3.1之后,尽管showLoading和hideLoading可以正常运行,但加载微调器不会显示在视图中。
这是我的loading.js代码:
define([
'jquery','spinjs','plugins/dialog','durandal/app'
],function ($,Spinner,dialog,app) {
'use strict';
var $dialog = null,$modalBackdrop = null;
/**
* Dialog DOM constructor
*/
function constructDialog() {
// Deleting previous incarnation of the dialog
return $(
'<div class="modal fade" data-backdrop="static" style="" data-keyboard="false" tabindex="-1" role="dialog" aria-hidden="true" style="overflow-y:visible;">' +
'</div>'
);
}
function removeDialog() {
if ($modalBackdrop) {
$modalBackdrop.remove();
$modalBackdrop = null;
}
if ($dialog) {
$dialog.remove();
$dialog = null;
}
}
var waitingMask = {
/**
* Opens our dialog
* @param options Custom options:
* options.optionsspinner - option for spinner
*/
show: function (options) {
var defaults = {
optionsspinner: {
lines: 13,// The number of lines to draw
width: 4,// The line thickness
color: '#ffffff',// #rgb or #rrggbb
trail: 60 // Afterglow percentage
}
};
options = $.extend({},defaults,options);
$(':focus').blur();
removeDialog();
var body = $('body');
$modalBackdrop = $('<div class="modal-backdrop fade in"></div>')
.css({'z-index': dialog.getNextZIndex()})
.appendTo(body);
$dialog = constructDialog().css({'z-index': dialog.getNextZIndex()});
//Add spinner
var spinner = new Spinner(options.optionsspinner).spin();
$dialog.append(spinner.el);
// Opening dialog
$dialog.modal({ backdrop: false });
},/**
* Closes dialog
*/
hide: function () {
removeDialog();
if (navigator.userAgent.search("Safari") > 0){
$('body').removeclass('modal-open');
}
}
};
app.showLoading = waitingMask.show;
app.hideLoading = waitingMask.hide;
return waitingMask;
});
任何人都可以帮助我解决这个问题吗?
非常感谢!