jQuery $ (). chaque lieu de $ .Chaque ()
Question
Je suis en train d'écrire un plugin en utilisant le modèle standard de création pour jQuery, en utilisant des méthodes pour faire des choses différentes avec, et je suis en cours d'exécution dans un problème avec .each ().
Je comprends la documentation au sujet de la différence entre $.each()
et $(selector).each()
mais je ne peux pas comprendre comment surmonter mon problème ...
Dans mon code, j'ai une méthode qui retourne un objet qui a été stockée à l'aide $(selector).data()
que je peux courir un .each de $ () sur comme ceci:
$.each($(selector).maps('getdetails'), function(key, value){/* stuff here */});
Toutefois, dans le cadre de jQuery chainability, ce n'est pas la façon dont il devrait être, et je ne peux pas comprendre comment le faire comme ceci:
$(selector).maps('getdetails').each(function(key, value){/* stuff here */});
Pour chainability et facilité d'utilisation pour l'utilisateur, ce dernier est préférable. Pourtant, je reçois toujours l'erreur suivante:
TypeError: $(selector).maps("getdetails").each is not a function
Voici la méthode en question à partir de l'objet variable:
getdetails: function(){
return $(this).data('maps').details;
},
(Oui, avant de vous dire, je sais que c'est JS incorrect, mais comme je l'ai dit, il est enveloppé correctement dans une variable {} dans mon code.)
Quelqu'un sait comment je peux manipuler cet objet dans un objet jQuery que cette dernière fonction .each()
va parcourir?
La solution
Je suppose que details
est un tableau, ce qui explique pourquoi details.each
ne va pas au travail. Vous devrez convertir details
à un objet jQuery.init
(la carte des objets jQueried), qui se fait simplement en le jetant dans la fonction jQuery
:
return $( $(this).data('maps').details );
Autres conseils
Êtes-vous Oubliant le « # » ou « » pour signifier une carte d'identité ou de classe, respectivement?