Antworten auf deine Fragen:
Neues Thema erstellen

jquery ajax Abfrage abbrechen

fakerer

Aktives Mitglied

Hallo,
Code:
<ul>
<li value="1">1</li>
<li value="2">2</li>
<li value="3">3</li>
</ul>

$('li').live("hover", function(){
    $.get("/ajaxgetdata/id/"+$(this).val()+"/",
        function(data){
            ....
    });
});
So wenn man nun mit der mouse dann über alle li fährt werden alle drei Abfragen gestartet.
Nun würde ich gerne sobald eine gestartet wird alle vorhergerigen abfragen an diese url abbrechen.

ich denke es müsste irgendwie mit .abort gehen aber irgendwie bekomm ichs nicht hin.

Würde mich über jeden Tipp sehr freuen,
Danke
 

mindraper

me[code].Java(Script)

AW: jquery ajax Abfrage abbrechen

hi

du kannst den request nicht abbrechen, nur die rückgabe verwerfen. so wie ich die documentation verstehe, funktioniert das auch nur bei $.ajax(), nicht bei $.get() (kann mich da aber auch irren).

du solltest auf deine syntax achten – die gemischte nutzung von " und ' ist ein schlechter programmierstil, benutze am besten nur eine art (m. E. nach vorzugsweise ' ).

ich bin mit nicht sicher, ob es eine gute idee ist, das ganze via hover zu lösen (sollte übrigens besser 'mouseover' heißen), weil das von vornherein alle mobile devices ausschließt. davon abgesehen würde sich bei einen 'mouseup/touchend'-listener das problem eigentlich schon von selber lösen, oder? :)

sofern du die liste nicht manipulierst, solltest du statt .live() besser .on() benutzen. das ist die reguläre methode um eventlistener zu registrieren. via eventdelegation könntest du sogar nur auf das <ul>-tag einen listener legen. dann könnte dir die manipulation der liste schnurz sein.

gruß
 
G

Ghaengi

Guest

AW: jquery ajax Abfrage abbrechen

hallo,

du musst dein $.get einer Variable zuweisen, dann kannst du anhand der Variable den Ajax Request der im Hintergrund läuft beenden.

Bsp. an deinem Code:
Code:
xhr = undefined;
$('li').live("hover", function(){
    if( xhr != undefined )
        xhr.abort();

    xhr = $.get("/ajaxgetdata/id/"+$(this).val()+"/",
                 function(data){
                     ....
             });
});

bin mir gerade nicht ganz sicher ob die Abfrage mit dem undefined so funktioniert, allerdings funktioniert so der Abbruch eines Requests. Habe es selber so bei einer Autovervollständigung benutzt, damit nur ein Ajax Request immer lief, wenn man schnell getippt hat :p
 
Zuletzt bearbeitet von einem Moderator:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.616
Beiträge
1.538.358
Mitglieder
67.536
Neuestes Mitglied
QuestionMark
Oben