Zum Beispiel, ich schaue auf die jCalendar-Quelle, und der Schöpfer hat zwei verschiedene Teile des Plugins, eine Funktion unter "jQuery.jcalendar" und eine andere "jQuery.fn.jcalendar". Was ist der Zweck, die beiden getrennt zu haben? Was macht man über den anderen?jQuery Plugin Authoring: Warum tun einige jQuery.pluginName und andere jQuery.fn.pluginName?
5
A
Antwort
10
jQuery.fn.mypluging Namen erweitert jQuery Objekte:
$(selector); //a jquery object
$(selector).myplugin();
jQuery.myplugin erweitert das Jquery-Objekt selbst:
$; //the jQuery object
$.myPlugin();
Durch das Plugin zu jQuery.fn Hinzufügen Sie können Sachen tun, um Die von diesem Selektor gefundenen Objekte:
jQuery.fn.makeRed = function(){
this.each(function() {
$(this).css('color', 'red');
}
}
$('div.someClass').makeRed(); //makes all divs of class someclass have red text
Die Erweiterung des jQuery-Objekts selbst ist normalerweise erforderlich ne für Funktionen, die Ihre Klasse benötigt, aber die jQuery-Objekte nicht erweitern. Um unser vorheriges Beispiel zu erweitern:
jQuery.fn.doStuff = function(){
this.each(function() {
$(this).css('color', 'red')
.append($.doStuff.giveMeRandom());
}
}
jQuery.doStuff = {
giveMeRandom: function() {
return Math.random();
}
}
$('div.someClass').doStuff(); //makes all divs of class someclass have red text and append a random number to them