2017-09-13 3 views
0

Ich habe ein Load-Ereignis in einer anderen JS-Datei, die. ON ('Laden') verwendet, um beim Klicken auf Paginierung in neue HTML zu laden. Allerdings muss ich etwas in einem anderen Skript passieren, sobald HTML geladen ist. Bisher habe ich das versucht, aber kein Glück. js-ajax-content-container ist das Element, das in neues HTML geladen wird. js-ajax-link ist der Paginierungslink, auf den ich klicke, um das Load-Ereignis zu initiieren.Erkennen, wenn ein Element fertig ist Laden neuer HTML

$('body').on('click', '.js-ajax-link', function() { 
    $('body').on('.js-ajax-content-container', 'ajaxComplete', function() { 
    alert("loaded"); 
    }); 
}); 
+0

Es meisten wahrscheinlich kein Ereignis für diese, Sie haben tatsächlich etwas für den Erfolg Rückruf zum ersten Ajax-Request auslösen – adeneo

Antwort

2

Sie können ein benutzerdefiniertes Ereignis in einem Skript auslösen und es in einem anderen anhören.

Übrigens sind Ihre Argumente in der falschen Reihenfolge für on().
Zuerst übergeben Sie den Ereignisnamen und dann den Selektor.

$('body').on('click', '.js-ajax-link', function() { 
    $('body').on('ajaxComplete','.js-ajax-content-container', function() { 
    $(document).trigger('ajaxLinkLoaded'); 
    }); 
}); 

Und in einem anderen Skript können Sie auf dieses Ereignis hören:

$(document).on('ajaxLinkLoaded', function(e){ // do something}); 
+0

Vielen Dank!!! Das ist unglaublich hilfreich. Ich wusste nicht, dass Sie Trigger anhängen können, um das Dokument zu erstellen. Ich stelle mir vor, dass ich das in Zukunft oft benutze. Auch, ups über die Bestellung ... Ich wusste, dass nur müde, haha ​​... Sie werden sehen, ich habe es sogar richtig in der Zeile oben. –

Verwandte Themen