Ich verwende die folgende jQuery, um neue Daten zu ziehen und den Inhalt der DIV-Listendaten zu ersetzen
%Vor%Das Skript wird durch zahlreiche Links auf der Seite ausgelöst, beispielsweise:
%Vor%Aus irgendeinem Grund funktioniert das Skript nur beim ersten Klick eines Links. Nachfolgende Klicks aktualisieren die Daten nicht.
Ich habe verschiedene Korrekturen gesehen, aber nichts, was ich funktioniere. Irgendwelche Vorschläge?
Es sieht so aus, als ob Ihr Problem darin besteht, replaceWith
zu verwenden.
Sie entfernen das Element, das mit $('#listdata')
übereinstimmt, beim ersten Aufruf von replaceWith
, sodass nachfolgende Aktualisierungen nicht finden können, wo die Daten im Dokument platziert werden sollen.
Sie könnten etwas wie
ausprobieren %Vor%oder so angekettet
%Vor% Wenn Sie replaceWith()
verwenden, ersetzen Sie #listdata
durch ein brandneues Element.
Wenn data
nicht so etwas wie <div id="listdata"></div>
ist, verschwindet #listdata
nach replaceWith()
. Ich denke, Sie sollten wahrscheinlich html()
stattdessen verwenden.
Sie müssen die hrefs in Ihren Links zu & lt; a href="#" & gt; ... & lt; / a & gt; ändern. Dies verhindert, dass der Browser aktualisiert wird, wenn Sie auf den Link klicken.
Wenn Sie die Dinge auf diese Weise tun, sollten Sie am Ende des Click-Handlers ein "return false" anbringen, um Blasenbildung zu vermeiden.
Versuchen Sie:
%Vor% Wenn sich die .refresh
-Anker im #listdata
-Element befinden, ist die Delegierung eine optimierte Lösung:
Tags und Links javascript jquery replacewith