Ich erstelle ein jQuery-Plugin, das ziemlich umfangreich ist. Tatsächlich besteht das Plugin technisch aus ein paar Plugins, die alle zusammen funktionieren.
%Vor%Ist es möglich, jQuery-Plugins mit Namespaces zu versehen, so dass die kleineren Plugins Funktionen des größeren Plugins sein könnten
%Vor%Dies würde den jQuery-Funktionsnamensraum nicht belasten. Sie könnten dann die Plugins wie
aufrufen %Vor%Das Problem, auf das ich beim Ausprobieren gestoßen bin, ist, dass die Funktionen, die als Eigenschaften der foo () - Plug-in-Funktion deklariert sind, nicht korrekt auf "this" gesetzt sind. 'this' verweist auf das übergeordnete Objekt und nicht auf das jQuery-Objekt.
Irgendwelche Ideen oder Meinungen würden geschätzt werden.
-Matt
Sobald Sie $.fn.foo.bar()
- this
auf $.fn.foo
setzen, was Sie in JavaScript erwarten würden ( this
ist das Objekt, an dem die Funktion aufgerufen wird.)
Ich habe in Plugins von jQuery UI (wie sortierbar) bemerkt, wo Sie Funktionen aufrufen wie:
%Vor%Wenn Sie so etwas tun - können Sie jQuery selbst erweitern:
%Vor%Ich weiß, dass dies bereits beantwortet wurde, aber ich habe ein Plugin erstellt, das genau das tut, was Sie wollen:
Ich habe unten ein kleines Beispiel eingefügt, aber werfen Sie einen Blick auf diesen Beitrag der jQuery-Entwicklergruppe für ein ausführlicheres Beispiel: Ссылка
Es ermöglicht Ihnen, ein Objekt mit beliebig vielen Methoden zu erstellen:
%Vor%Jetzt können Sie gehen:
%Vor%Es gibt natürlich viele, viele andere Möglichkeiten, wie in der Dev-Gruppe Post erklärt.
Nun, ich bin mir sicher, dass es viele Möglichkeiten gibt, diese Katze zu häuten. Die jQuery UI-Bibliothek verwendet ein Muster wie dieses:
%Vor% Ich bin ein Fan des Musters, das ich auf Eric Martins
Auf diese Weise kann ich leicht auf den Konstruktor verweisen:
%Vor%... oder eine öffentliche Methode:
%Vor%Hier sind die Interna:
%Vor%Tags und Links javascript jquery jquery-plugins