it-swarm.com.de

Widget "Speichern" zum Zurücksetzen ausgeblendeter jQuery-Felder

Ich habe ein Widget-Plugin erstellt, das ungefähr 10 Feldsätze auflistet. jQuery wird am Anfang ausgeführt und verbirgt und Feldsätze, die keine Werte haben. Es gibt auch Schaltflächen zum Hinzufügen und Entfernen von Feldern.

Alles funktioniert super, außer wenn es Zeit zum "Speichern" ist. Nachdem Sie auf Alle jQuery-Objekte speichern geklickt haben, werden alle ausgeblendeten Feldsätze 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

Weiß jemand, woran das liegen könnte, oder eine mögliche Lösung?

1
Dave Hunt

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

Derzeit werden Ihre jQuery-Hooks nicht aufgerufen, wenn die Schaltfläche zum Speichern aufgerufen wird, da die Tags des Formulars mit Ajax neu geladen werden und jQuery (document) .ready () offensichtlich nicht so aufgerufen wird, wie sie sind.

1

Sie müssen nur die Steuerelemente in der Rückruffunktion 'success' von jQuery.ajax neu binden.

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

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

1
Martin Zeitler

Das ist eine Ajax-Sache. Eine Lösung, um Ihr Skript wieder zum Laufen zu bringen, wenn Sie das Widget speichern:

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

    }
});
1
Marcio Duarte