2016-04-26 7 views
0

Ich versuche, Ajaxstart() auszulösen, wenn eine Schaltfläche mit einer Klasse angeklickt wird, aber es funktioniert nicht, würde jede Rückmeldung geschätzt werden.Auslösen von ajaxStart() onclick auf einer Schaltfläche

Danke.

Code:

$('.search-btn').ajaxStart(function() { 
     $('#spinner').show(); 
    }).ajaxComplete(function() { 
     $('#spinner').hide(); 
    }); 
+0

'ajaxstart()' sollte nicht „ausgelöst, wenn eine Schaltfläche geklickt wird“ - es sollte auf Last definiert wird und dann wird automatisch ausgelöst, wenn Sie ein Ajax-Task ausgeführt. Wenn Sie auch die * selbe * Funktionalität (Spinner anzeigen/verbergen) beim Klicken auf eine Schaltfläche wünschen, dann fügen Sie die Funktionalität in eine Funktion ein und rufen Sie beide auf. –

Antwort

0

Bit verwirrt, was in Ihrem Beispiel geschieht. Aber ich habe geschrieben, was ich denke Sie tun möchten.

$('.search-btn').on('click', function() { 
    $(this).ajaxStart(function(){ 
     $('#spinner').show(); 
    }).ajaxComplete(function() { 
     $('#spinner').hide(); 
    }); 
}); 
+0

"trigger" ajax start, nicht setup ajaxstart - dies zeigt den Spinner beim Klicken nicht an. Wenn das wirklich * ist * was das OP will, dann brauchen sie einen Schlag. :) –

+0

Einverstanden, nicht ganz sicher, was sie wollen, ist meine Antwort wahrscheinlich nicht im geringsten nützlich. : P – Flux

1

$.ajaxStart() und $.ajaxComplete() sollte $(document) angebracht werden. Siehe $.ajaxStart()

Ab jQuery 1.9, alle Handler für die jQuery global Ajax events, einschließlich solcher mit der Methode .ajaxStart() hinzugefügt, muss zu document angebracht werden.

$(document).ajaxStart(function() { 
     $("#spinner").show(); 
    }).ajaxComplete(function() { 
     $("#spinner").hide(); 
    }); 
Verwandte Themen