加载时jquery加载

时间:2015-08-29 07:46:06

标签: javascript jquery ajax

我有这样的剧本

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)

3 个答案:

答案 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)

感谢Rayon Dabre 我真正想要的是这样的

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调用。