it-swarm.com.de

JS ausführen, nachdem die Widget-Einstellungen gespeichert wurden?

Ich habe ein kleines Widget geschrieben, das JS zum Einrichten einiger Registerkarten im Einstellungsfenster verwendet. Gibt es eine Möglichkeit, den Tab JS erneut auszulösen, wenn das Speichern des Widgets abgeschlossen ist?

Betrachtet man die WP JS-Quelle sieht es nicht so aus, da es einfach das vorhandene HTML wegbläst und neu rendert die gesamte Form. Ich könnte möglicherweise wpWidgets.save überschreiben und dort etwas verrücktes tun, aber das scheint wirklich drastisch zu sein.

Lösung

Nach einigem Hacken, das auf der Idee von One Trick Pony basiert, kam ich zu folgendem Ergebnis:.

<script>
jQuery(document).ready(function($){
    if(parseInt("<?php echo $this->number; ?>", 10)) {
        $("[id$='<?php echo $this->id; ?>'] .tabs").tabs();
    }
});
</script>

Grundsätzlich sende ich nur einige JS mit einigen Widgets-Werten herunter, die in CSS3-Selektoren fest codiert sind, und überprüfe sie und finde die richtigen DOM-Knoten.

1
Tivac

Geben Sie Ihren Javascript-Code in das Widget-Formular ein. Er wird immer dann ausgelöst, wenn das Widget aktualisiert wird.

Wenn Ihre Tabs an ein Klickereignis gebunden sind, ist die Verwendung von $.delegate für den Widget-Instanz-Wrapper eine bessere Möglichkeit. Auf diese Weise müssen Sie das js nicht in jede Widget-Instanz einfügen ...

2
onetrickpony