Sie sollten folgendes beachten:
Wenn Sie Inhalte mit Ajax zu laden, die damit erstellt alle Elemente automatisch nicht tun haben die Bindungen und Ereignisse, die alle anderen Elemente auf Seite erstellt laden haben. Wenn Ihre Elemente ein bestimmtes Verhalten nach dem Ajax haben sollen, dann sollten Sie Funktionen erstellen, die Sie in der onSuccess
Ihres Form Remote-Tags aufrufen können.
Sie könnten normale Formulare verwenden und on
Funktion der Nutzung jquery als
$('#my-element-in-page-when-loaded').on('click', 'my-ajax-element', function(){ /*jquery ajax functions load, get, post, ajax*/})
statt
$('my-ajax-element').click();
da letztere wird nur funktionieren, wenn mein-Ajax-Element vorhanden ist, wenn die Seite wird anfänglich geladen.
, wenn das Problem ist, dass Ihr JavaScript in einer falschen Reihenfolge geladen wird, dann sollten Sie wie folgt auf Ihre Template-Code
<content tag="javascript">
//your js
</content>
und zum Layout folgenden Code, nach dem Ort, an dem Sie Deklarieren Sie Ihre Ressourcen oder Asset-Javascripts.
//your layout assets
<g:pageProperty name="page.javascript"/>
Auf diese Weise können Sie eine Datei mit allen häufig verwendeten Funktionen in einer Datei erklären, und dann alle Ihre Ansicht spezifischen js in der
<content tag="javascript">
//your view specific code.
</content>
Könnten Sie mehr darüber erklären - "_dann ist es nur für alle non ajax call_" verfügbar? Was hält Sie davon ab, die JS-Datei zu den Vorlagen hinzuzufügen? –
Hallo Mikelis, ich habe einzelne js gemacht, wenn ich die js-Datei in die Vorlage einfüge, dann wird auch der ganze andere Code geladen. –
Teilen Sie es in zwei Dateien - eine mit dem Code, der nur auf diese spezifischen Vorlagen angewendet werden sollte. –