2013-04-23 5 views
5

Wenn ich einen Event-Handler mit .ajaxStop wie folgt befestigen:entfernen Event-Handler, die von .ajaxStop

$(document).ajaxStop(function() { 
    //Some code 
}); 

Wie entferne ich das Ereignishandler?

+0

kann '.off()' oder '.unbind()' helfen –

+0

und was wäre der genaue Code in diesem Fall zu verwenden ?? –

+0

sehen Sie haben dafür die Antwort –

Antwort

3

Verwendung .off()

einen Ereignishandler entfernen.

$("#elementID").off() 

diese entfernt alle Event-Handler aus dem ausgewählten Element

+0

Aber was ist der genaue Code in diesem Fall? –

+0

Dafür müssen Sie uns Codes geben und uns sagen, was Sie brauchen. Welche Veranstaltung sprechen Sie? und so weiter – bipen

+0

Ich möchte, dass der .ajaxStop-Handler die Ausführung des Codes, den ich ihm gegeben habe, aufhört. –

12

Versuchen unbinding es, etwa so:

$(document).ajaxStop(function() { 
    $(this).unbind("ajaxStop"); 
    //Some code 
}); 

Es ist, wie ich es zu tun habe.

+0

Das funktioniert für mich :) Danke. – Qerjiuthn

+0

Ich musste '$ (document) .unbind ('ajaxStop');' anstelle von '$ (this)' verwenden. – Tim

+0

jQuerys 'unbind' ist ab Version 3.0 veraltet, verwenden Sie stattdessen' off'. – Tim

0

Wenn Sie benötigen, um sicherzustellen, dass der Handler-Code innerhalb ajaxStop() -Methode ausgeführt wird, bevor es entfernt wird, schlage ich folgendes:

$(document).ajaxStop(function(){  
    // Functions there 

    $(this).unbind("ajaxStop"); 
}); 

Besonders nützlich, wenn Sie verschiedene mögliche .ajax $ haben in die gleiche Seite und Sie möchten steuern, wo der AjaxStop() Code ausgeführt werden soll. Dann müssen Sie diesen Code nur in der benötigten jQuery-Funktion verwenden.

+0

jQuery 'unbind' ist ab Version 3.0 veraltet, verwenden Sie stattdessen' off'. – Tim