Rufen Sie ein jQuery-plugin, Funktion außerhalb des Plugin
Ich gebaut habe ein jQuery-Plugin, aber jetzt habe ich eine Funktion aus dem Plugin, die außerhalb des Plugins.
Das Plugin
(function ($) {
jQuery.fn.vierGewinnt = function () {
var VierGewinnt = function (config) {
this.view = config.view;
this.dx;
this.turn = 1;
}
VierGewinnt.prototype.setToken = function (column) {
for (var i = this.rows; i > 0; i--) {
if (this.gamearray[column][i] == 0) {
this.gamearray[column][i] = "red";
this.turn++;
this.findWinner(column, i);
break;
}
}
}})(jQuery);
main.js ich habe versucht:
$.setToken()
$.fn.vierGewinnt.setToken()
$.fn.vierGewinnt.VierGewinnt.setToken()
Vielleicht hat ja jemand eine Ahnung! Thx im vorraus!!!!
Wie kann das sein? Ich sehe keinen ausführbaren code. Und es gibt eine fehlende Klammer (
naja...ich ließ eine Menge von code. denn das war nicht wirklich wichtig ....und es funktioniert! wenn ich versuche $.fn.vierGewinnt zeigt es mir den gesamten code des plugins, damit ich weiß, dass es in der jquery-Prototyp
Da es definiert ist, innerhalb eines Bereichs und dann nie Kontakt, um etwas über den globalen scope, Nein es gibt keine Möglichkeit für Sie, um Zugriff zu erhalten, um es wie es ist.
Das ist gut zu wissen. Dennoch können Sie korrigieren möchten den kleinen Fehler auch wenn es ein "Beispiel"
}
)naja...ich ließ eine Menge von code. denn das war nicht wirklich wichtig ....und es funktioniert! wenn ich versuche $.fn.vierGewinnt zeigt es mir den gesamten code des plugins, damit ich weiß, dass es in der jquery-Prototyp
Da es definiert ist, innerhalb eines Bereichs und dann nie Kontakt, um etwas über den globalen scope, Nein es gibt keine Möglichkeit für Sie, um Zugriff zu erhalten, um es wie es ist.
Das ist gut zu wissen. Dennoch können Sie korrigieren möchten den kleinen Fehler auch wenn es ein "Beispiel"
InformationsquelleAutor user1354743 | 2013-01-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Art und Weise Sie es getan haben, Sie können nicht nennen es von außen.
Gibt es ein paar Muster, wie Sie js/jquery-widgets.
Die Sie versuchen zu kombinieren, die "normalen" prototype mit jQuery.
Wie ich sehe, haben Sie zwei Optionen.
Wickeln Sie die jQuery-Methode zum zurückgeben der Instanz des Konstruktors. Sie können call-Prototyp die Methoden auf. So etwas wie:
Dann können Sie Instanz das plugin und rufen Sie die Methode
In diesem Fall fast alle Ihren code raus zu gehen die
(function ($)
block. Sie sind nur mit Hilfe von jQuery als wrapper, alles andere ist ganz normales javascript. So weit ich das sehen kann ist das plugin nicht aufgerufen wird, auf jedem DOM-element. Es diesem Fall sehe ich nicht viel Sinn in ein jQuery-plugin,... es ist reines javascript. Wenn das der Fall ist, einfach Locker all das jQuery Zeugs aus deinem Beispiel, und es wird funktionieren.Verwenden Sie ein anderes plugin pattern. Ich persönlich mag die jQueryUI widget factory-Ansatz, aber Sie müssen jQueryUI. Docs
InformationsquelleAutor ZolaKt
Alles, was Sie tun müssen, ist die Rückgabe der Funktion/plugin-Verschluss und erstellen Methoden, die Sie Steuern möchten, die außerhalb des plugin als eine Eigenschaft der Verschluss ($this).
Und speichern Sie dann die Referenz auf den plugin Aufruf der Methode später.
InformationsquelleAutor Chester Rivas
Hinweis: die öffentliche setter-Funktionen return '$this':
ermöglicht die Verwendung von jQuery-style-chaining:
InformationsquelleAutor vess