/ / Mit Hilfe von Zurb Foundation 6 javascript mit jspm - javascript, zub-foundation

Mit Hilfe von Zurb Foundation 6 javascript mit jspm - javascript, zub-foundation

Ich habe ein ES6-Modul wie folgt definiert:

import "zurb/foundation/js/foundation.core";
import "zurb/foundation/js/foundation.util.mediaQuery";
import "zurb/foundation/js/foundation.dropdown";
import "zurb/foundation/js/foundation.reveal";
import "zurb/foundation/js/foundation.tabs";
import modalFactory from "./modal";
import revealCloseFactory from "./reveal-close";

export default function ($element) {
debugger;
$element.foundation();
}

Wie Sie sehen können, gibt es oben einen Breakpoint für die Standard-Exportfunktion.

Ich verwende dieses Modul dann in einer Datei wie dieser:

import $ from "jquery";
import foundation from "./global/foundation";

export default class Global extends PageManager {
loaded(next) {
foundation($(document));
next();
}
}

Wenn das läuft, bekomme ich einen Fehler, dass $element.foundation ist keine Funktion. Verwendung der debugger Anweisung kann ich den aktuellen Bereich überprüfen, wenn die Ausführung pausiert. Ich kann das bestätigen $element hat kein a foundation() Methode. Ich bin mir nicht sicher, warum das der Fall ist, seit Fundament an der Spitze der Datei importiert wurde.

Außerdem, wenn die Ausführung pausiert, auf der js-Konsole, wenn ich es tue $(document).foundation()es funktioniert, und Fundament ist in der Tat eine Funktion. Ebenfalls, $element.is($(document)) kehrt zurück true.

Warum sollte das? foundation Methode verfügbar sein auf $(document) und nicht $element?

Außerdem, wenn ich die Zeile zu ändern von foundation($(document))bis foundation(jQuery(document)), Es klappt. Ich kann auch sehen, dass, wenn ich direkt vor dieser Zeile einen Haltepunkt setze, $.fn.foundation existiert nicht, aber jQuery.fn.foundation tut.

Was geht hier vor sich?

Antworten:

0 für die Antwort № 1

Der Grund ist höchstwahrscheinlich die Tatsache, dass der Code, der das jQuery-Objekt generiert, die Foundation nicht importiert, also wenn das Objekt erstellt wird foundation Funktion ist nicht Teil des Prototyps.

Fügen Sie den Basisimport zu dem Code hinzu, der das Objekt erstellt.