Appeler un plugin jQuery sans préciser les éléments
Dire que j'ai la suite de plugin jQuery:
$.fn.myPlugin = function () {
//plugin code
}
Normalement, vous appelez un plugin sur un certain nombre d'éléments, comme tel:
$("body").myPlugin();
Est-il possible que je peux appeler mes plugin sans spécification d'un élément?
J'ai essayé de l'appeler comme tel: $.myPlugin();
, mais qui ne fonctionne pas.
Ce qui fonctionne est: est-ce $().myPlugin();
, mais est-ce la bonne façon de l'invoquer?
Vous devez vous connecter pour publier un commentaire.
La rapide façon d'écrire, c'est ceci:
La droit façon d'écrire, c'est ceci:
Il peut sembler un peu déroutant au premier abord, mais c'est d'un commun jQuery modèle.
Ce code crée une fonction anonyme et appels en passant
jQuery
comme argument. L'intérieur de la fonction, cet argument est lié à$
. La raison à cela est le fait qu'il vous permet de travailler avec les$
même si jQuery est en cours d'exécution dans pas de conflit mode.La deuxième partie est
$.étendre
. Essentiellement, il s'étend de l'objet jQuery lui-même, lorsqu'il est appelé avec un argument simple.Appeler le plugin (dans le rapide et le droit des cas) est:
Je pense que vous êtes à la recherche pour jQuery.extend() :
T-il utilisation la collection si vous écrivez quelque chose de différent, comme
$('a').myPlugin()
? Si elle ne l'est pas, alors pourquoi êtes-vous de le mettre dans$.fn
? Peut-être que vous avez voulu injecter dansjQuery
lui-même.Si il ne travail sur une collection, mais parfois un regroupement vide de sens, alors je pense que votre invocant devrait être
$([])
-- passage d'un videArray
àjQuery
vous donne un vide de collection, en passant à rien du tout semble vous donner un recueil contenantdocument
.$.myPlugin = function ()
au lieu d'utiliser lefn
? parce que je l'ai essayé aujourd'hui, comme ça, et je peux en effet l'appelez, puis avec la notation que je veux:$.myPlugin();
$.myPlugin = function ()
, ça va encore être techniquement appelé unplugin
?