Widget “Speichern” setzt jQuery versteckte Felder zurück

Ich habe ein Widget-Plugin, das ich erstellt habe, das etwa 10 Fieldsets auflistet. jQuery wird am Anfang ausgeführt und blendet Feldgruppen ohne Werte aus. Es gibt auch Schaltflächen, mit denen Sie Feldgruppen “hinzufügen” und “entfernen” können.

Alles funktioniert gut, außer wenn es Zeit zum “Speichern” ist. Nachdem Sie auf Speichern geklickt haben, werden alle versteckten Feldgruppen angezeigt und die Schaltflächen “Hinzufügen” und “Entfernen” funktionieren nicht mehr. Die einzige Möglichkeit, das Widget weiterhin ordnungsgemäß zu verwenden, besteht darin, die Seite zu aktualisieren

Irgendeine Idee, was könnte dies verursachen, oder eine mögliche Lösung?

Solutions Collecting From Web of "Widget “Speichern” setzt jQuery versteckte Felder zurück"

Sie suchen nach jQuery.live () oder jQuerys Livequery-Plugin, je nachdem, was Sie tun möchten. (Die zweite ist die richtige, wenn Sie onChange-Ereignisse verwenden müssen.)

Wie es aussieht, werden Ihre jQuery-Hooks nicht aufgerufen, wenn die Schaltfläche zum Speichern aufgerufen wird, weil die Tags des Formulars mit ajax neu geladen werden, und jQuery (document) .ready () wird natürlich nicht so aufgerufen, wie sie sind.

Sie müssen nur die Steuerelemente innerhalb der jQuery.ajax Callback-function “Erfolg” erneut binden.

Das Binden von Triggern durch .live () könnte eine alternative Option sein – ich persönlich bevorzuge die function .on ().

Verwenden Sie einfach einen DOM-Inspector, um die DOM-Ereignisbindungen zu überprüfen.

Das ist eine Ajax-Sache. Eine Lösung, damit Ihr Skript beim Speichern des Widgets wieder funktioniert:

jQuery(document).ajaxSuccess(function(event, xhr, settings) { var widget_id_base = 'your-widget-id-base'; if(settings.data.search('action=save-widget') != -1 && settings.data.search('id_base=' + widget_id_base) != -1) { // Do your stuff again here } });