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?

Était-ce utile?

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?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top