3 Stimmen

AjaxStart() "$ ist nicht definiert"

Wie kann ich ajaxStart einrichten??

Ich bekomme "$.ajaxStart ist keine Funktion"

function Loader(){
    this.loader = null;

    this.cnstr = function(){
        if(!this.loader){
            this.loader = DOM.div(document.body);
            with(this.loader){
                className = 'loader';
                innerHTML = 'loader';
                style.display = 'none';
            }

            elm_position_center(this.loader);
            $(this.loader).fadeIn(1000);
        }
    };

    this.dstr = function(){
        if(this.loader){
            DOM.rmv(this.loader);
        }
    };
}
var Loader = new Loader();

$.ajaxStart(function(){
    Loader.cnstr();
});

$.ajaxStop(function(){
    Loader.dstr();
});

BEARBEITEN:

$.ajaxStart ist keine Funktion

window.onload = function(){
    $.ajaxStart(function(){
        Loader.cnstr();
    });

    $.ajaxStop(function(){
        Loader.dstr();
    });
};

0 Stimmen

Sie haben jQuery nicht geladen oder es steht im Konflikt mit einer anderen Bibliothek.

0 Stimmen

Wird noch eine andere JS-Bibliothek verwendet? Wie z.B. mootools, prototype

0 Stimmen

Nein ... nur jQuery ... wenn ich die Zeilen mit ajaxStart/Stop escapen, funktioniert alles andere mit $.

9voto

clarkk Punkte 25525

Dies funktioniert..

$(document).ajaxStart();

1voto

ave4496 Punkte 2791

Ihre jQuery-Datei fehlt wahrscheinlich oder Sie haben sie nicht korrekt geladen

0 Stimmen

Jetzt wird es vor diesem Code geladen, aber jetzt bekomme ich die Meldung "$.ajaxStart ist keine Funktion".

0voto

spender Punkte 111351

Sie müssen sicherstellen, dass jQuery geladen ist. Versuchen Sie dies zu Ihrem Dokument hinzuzufügen:

0 Stimmen

Auch wenn ich die Funktion in eine window.onload-Funktion setze

0voto

brroshan Punkte 1590

Versuchen Sie dies:

$("#loadingAnimation").bind({
   ajaxStart: function(){ $(this).show(); },
   ajaxStop: function() { $(this).hide(); }
});

Binden Sie im Wesentlichen Ihr loadingAnimationElement an die global ausgelösten Ereignisse ajaxStart und ajaxStop. Es wird nur angezeigt, wenn Sie es beabsichtigen.

Wenn jQuery keine Ajax-Anfragen ausführt und eine neue Anfrage initiiert wird, löst es ein ajaxStart-Ereignis aus. Wenn andere Anfragen beginnen, bevor diese erste endet, verursachen diese neuen Anfragen kein neues ajaxStart-Ereignis. Das ajaxStop-Ereignis wird ausgelöst, wenn die letzte ausstehende Ajax-Anfrage abgeschlossen ist und jQuery keine Netzwerkaktivität mehr ausführt.

//Danke an Kevin Brown, der mich daran erinnert hat, das Beispiel zu erklären.

0 Stimmen

Während diese Antwort wahrscheinlich korrekt und nützlich ist, ist es bevorzugt, wenn Sie eine Erklärung hinzufügen, um zu erklären, wie sie dabei hilft, das Problem zu lösen. Dies wird besonders nützlich in der Zukunft, wenn es zu einer Änderung (möglicherweise nicht verwandt) kommt, die dazu führt, dass es nicht mehr funktioniert und Benutzer verstehen müssen, wie es einst funktioniert hat.

0voto

Vl4dimyr Punkte 789

Seit jQuery 3.5.0 sind Aliase wie ajaxStart veraltet.

Auch AJAX-Ereignisaliase stehen auf der Liste und können durch .on('ajaxStart', ...) und ähnliches ersetzt werden. jQuery Migrate wird nun vor diesen veralteten Methoden warnen, aber sie bleiben bis jQuery 4.0 bestehen.

http://blog.jquery.com/2020/04/10/jquery-3-5-0-released/

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X