2016-04-11 10 views
1

Ist es möglich, eine div-id an eine Funktion (show) übergeben und dann laden Bild anzeigen, die die gesamte div & dann Pass div-id zu einer anderen Funktion (ausblenden) und verstecken das Ladebild über dem div. Ich versuche, eine generic Lösung hier & nicht auf der Suche nach so etwas zu erstellen.Generische Funktion, die Laden Symbol über alle gegebenen div zeigt

jQuery.ajaxSetup({ 
    beforeSend: function() { 
    $('#loaderDiv').show(); 
    }, 
    complete: function(){ 
    $('#loaderDiv').hide(); 
    }, 
    success: function() {} 
}); 

Ich möchte einmal laden Symbol pro div. Ich möchte nicht nur ein großes div zeigen, das die gesamte Seite abdeckt. Bitte helfen Sie.

+0

Sie können eine Klasse in CSS machen, die die Art und Weise überlagert Inhalte, die Sie wollen, und dann einfach hinzufügen/entfernen diese Klasse. Eine von vielen Möglichkeiten. –

+0

Sie könnten eine Einstellung erstellen, die an $ .ajax (URL, Einstellungen) übergeben wird, die den Selektor Ihres Zieldivs identifiziert. Sie könnten es dann im Ajaxsetup verwenden, um einen Loader an Ort und Stelle zu zeigen. – Steve

+0

@MariM: Wie kann ich die CSS-Klasse über ein anderes div in Bezug auf Position, Höhe und Breite überlagern? – OpenStack

Antwort

3

Mit einer Einstellung, die für $ .ajax (URL, [Einstellungen]) bereitgestellt wird, können Sie den Speicherort eines Lade-Divs ändern.

$.ajaxSetup({ 
    beforeSend: function(xhr, settings) { 
     var $target = $(settings.targetSelector); 
     var $loading = $('#loaderDiv'); 
     $loading.css($target.position()); 
     $loading.width($target.width()); 
     $loading.show(); 
    }, 
    complete: function() { 
     $('#loaderDiv').hide(); 
    } 
}); 

//then later in a button click or whatever 
$.ajax('URL', { 
    targetSelector: "#DIV_TO_OVERLAY" 
}); 

https://jsfiddle.net/x3f8ntdv/

Verwandte Themen