2016-12-15 1 views
0

Ich wollte, dass mein Code erneut ausgeführt wird, nachdem einige neue Daten in die Seite selbst geladen wurden. Zum Beispiel:Führen Sie Jquery erneut aus, nachdem die Seite etwas Neues geladen hat.

$(document).ready(function() { 
    console.log("page completed"); 
} 

Sobald die Seite geladen wird vollständig wird es page completed in der Konsole aus. Gibt es eine Möglichkeit, den Code erneut auszuführen, wenn neue Dinge in die Seite geladen wurden?

Fall # 1: Wenn ein Nutzer auf dem Facebook News-Feed die Seite herunterscrollt, wird JavaScript ausgeführt, um die neuen Facebook-Feeds und Updates abzurufen.

Fall 2: Führen Sie die Skripts erneut aus, wenn Änderungen an der URL selbst vorgenommen wurden.

+8

Fügen Sie den Code, den Sie ausführen müssen, in eine Funktion ein und rufen Sie diese Funktion auf, wenn Sie den neuen Inhalt laden. –

+0

Es in eine Funktion zu bringen ist die saubere Art, es zu tun, aber Sie können auch Event-Handler manuell mit '.trigger()' auslösen (Ich würde nicht vorschlagen, dass Sie das tun - nur informieren Sie) – Archer

Antwort

2

Sie können Ihre anonyme Funktion mit einer normalen Funktion wie diese

function onDocumentReady() { 
    // Your code 
} 

dann verwenden, in $(document).ready(onDocumentReady) ersetzen und später wieder aufrufen, wo nötig.

1

Zusätzlich zur Antwort von @Bastiaanus auf eine gemeinsame Funktion und unter der Annahme, dass Ihr neuer Inhalt über jQuerys AJAX geladen wird, können Sie einen globalen Handler so konfigurieren, dass bei jedem Laden von Inhalt ein Code ausgeführt wird, der .ajaxSuccess() verwendet.

Weitere Informationen zu solchen Ereignissen finden Sie unter this link.

Verwandte Themen