J'ai utilisé un code:
jQuery.fn.MyFunction = function(){ return this.each(function() { attributes = "test"; return attributes; });}
Mais quand j'appelle
var1 = $(this).MyFunction();alert(var1);
J'ai eu un [objet], mais pas le "test".
Comment autoriser le plugin jquery renvoie-t-il une certaine valeur?
Les plugins jQuery sont généralement conçus pour renvoyer un objet jQuery afin que vous puissiez chaîner des appels de méthode:
jQuery("test").method1().method2() ...
Si vous souhaitez renvoyer quelque chose, utilisez la syntaxe suivante:
jQuery.fn.extend({ myFunction: function( args ) { attributes = "test"; return attributes; } });
, Ou accédez-y via son index en utilisant []
.
Voici une fois de plus votre code:
jQuery.fn.MyFunction = function() { #1 return this.each(function() { #2 return "abc"; #3 }); #4 }; #5
Voyons maintenant ce que chaque ligne fait.
MyFunction
qui est une fonction pour chaque objet jQuery. jQuery.MyFunction()
. Nous this.each()
le résultat de this.each()
, pas le résultat de la fonction lambda (utilisé comme argument pour jQuery.each()
). Et this.each()
renvoie pour que le résultat final soit que vous obtenez l'objet jQuery retourné. Les lignes 3-5 ne sont pas importantes en fait.
Il suffit de considérer ces deux exemples:
jQuery.fn.MyFunction = function() { return this.each(function() { return "abc"; }); }; jQuery.fn.AnotherFunction = function() { return "Hello World"; }; var MyFunctionResult = $(document).MyFunction(); var AnotherFunctionResult = $(document).AnotherFunction(); alert(MyFunctionResult); alert(AnotherFunctionResult);
Je pense que jQuery renvoie l'objet, afin que vous puissiez maintenir l'aptitude à la chaîne de différentes fonctions.
Hmm, peut-être utiliser
var1 = $(this)[0].MyFunction();alert(var1);
Mais je ne sais pas si c'est ce que vous voulez ou si votre code fonctionne. Qu'est-ce que vous essayez d'atteindre? Êtes-vous sûr de vouloir appeler this.each()
?
Comme les autres l'ont dit, jQuery renvoie les objets jQuery dans la plupart des cas, et l'accès à l'objet réel peut être réalisé en utilisant un indexeur []
ou la méthode get
.