我有这样的剧本
function manualSeat(){
$('.dimmed').show();
$("#petaKursi").load('url');
$('#wagonCode').val('');
$('#wagonNumber').val('');
$('#selSeats').val('');
selectedGerbong = '';
selectedSeats = Array();
$('#manualSeatMap').show();
$('.dimmed').hide();
}
上面的代码不起作用可能是因为代码没有等到加载语法完成加载,...(可能)
我想问的是,如何制作my $('.dimmed')
就像加载开始时一样开始(显示)加载并在加载完成时停止(隐藏)
我想要的是这样的:: 页面加载(每个div)=>点击按钮=>加载页面到div(加载时,showLoader),完成加载时(hideLoader)
答案 0 :(得分:2)
试试这个:
var dimmed = $('.dimmed');
var showLoader = function () {
dimmed.fadeIn();
};
var hideLoader = function () {
dimmed.fadeOut();
};
document.addEventListener('DOMContentLoaded', showLoader);
window.onload = hideLoader;
只要您想显示或隐藏loader元素,就可以调用showLoader和hideLoader方法。
答案 1 :(得分:0)
function manualSeat(){
dimmed.fadeIn();
$("#petaKursi").load('blablabla', function() {
dimmed.fadeOut();
});
$('#wagonCode').val('');
$('#wagonNumber').val('');
$('#selSeats').val('');
selectedGerbong = '';
selectedSeats = Array();
$('#manualSeatMap').fadeIn();
}
答案 2 :(得分:0)
执行所需操作的最佳方法是使用AjaxStart和AjaxStop函数。这样,当Ajax调用(.load是其中之一)时,您将触发它将执行某些操作。
所以在你的情况下:
$(document).ajaxStart(function (){
//I begin the ajax call so I show the layer
$('.dimmed').show();
//you can also do other stuffs like changing the tab title
document.title = 'loading...';
}).ajaxStop(function (){
//The ajax loading has ended
$('.dimmed').hide();
document.title = 'page';
});
我要为加载时使用的图层找到ID来识别它。 如果你想仅针对某些ajax调用触发此事件而不是为其他事件添加
global: false
属于该特定的ajax调用。