2016-11-29 3 views
-1

Ich habe einige benutzerdefinierte jQuery-Plugins schreiben, und ich habe den folgenden Code , die die jQuery erweitert:jQuery Erweiterung, kann ich diesen Code eleganter machen?

Jetzt
(function ($) { 
    $.fn.extend({  

     pluginOne: function() { return this.each(pluginOneFN) }, 
     pluginTwo: function() { return this.each(pluginTwoFN) }, 
     pluginThree: function (p1, p2) { 
      return this.each(function() { 
       pluginThreeFN.call(this, p1, p2); 
      }); 
     }  

    }); 
})(jQuery); 

die pluginOne und pluginTwo OK sind aber pluginThree sieht chaotisch.

Die pluginThree erfordert einige Parameter, und ich frage mich, gibt es kürzere oder eleganter Weise, dieses Stück Erweiterungscode für Plugin 3 zu schreiben?

+3

Nein, das ist es. Ich sehe jedoch nichts falsch damit. Ich nehme an, Sie finden alle anonymen 'function()' Definitionen unansehnlich? So ist JS aber auch. –

+0

Ich denke nicht, dass es überhaupt chaotisch ist, lesbar, verständlich. Vielleicht könnten Sie Argumente verwenden, um die Zeichen "p1" und "p2" zu speichern. Aber immer noch müssen Sie es auf eine lokale Variable speichern, also ... lassen Sie es einfach so, wie ich denke. –

+0

Kürzere vielleicht, eleganter hängt davon ab, was Sie als elegant betrachten. Aber ich denke, es ist gut so wie es ist. – Seb

Antwort

0

Nur was mir einfällt ist eine kleine Wiederverwendbarkeitsverbesserung. Sie könnten eine Funktion zum Initialisieren von Plugins im Allgemeinen, unterstützende Argumente einführen.

Beachten Sie, dass ich diesen Code nicht getestet habe, es ist nur für die Demonstration der Idee.

Auch, wenn ich Plugins erstellen würde, würde ich die bestehende Konvention der Verwendung nur eines Arguments, die eine Art options Objekt bei der Initialisierung ist, oder eine string für Aufrufmethoden folgen. Ihre Methode kann dies nicht unterstützen, auch dies kann ich nicht beantworten. Sie können den Quellcode von bootstrap für eine gute Skelett-Implementierung eines solchen Plugin-Systems überprüfen.

+0

Ich dachte auch in diese Richtung, nett! – Dusan

+0

Sorry, ich hatte einen Fehler im Code, jetzt sollte es besser sein. –

+0

Downvoter, könnten Sie bitte meine Bearbeitungen überprüfen und einen Kommentar hinterlassen, wenn etwas immer noch falsch ist? –

Verwandte Themen