2010-12-09 69 views
3

J'ai besoin d'aide pour comprendre pushStackjQuery pushStack

Ici, j'ai fait un exemple où les résultats en utilisant ou non sont les mêmes http://jsfiddle.net/Bz5n9/2/ donc je pense que je n'ai pas vraiment ce qui est pour.

Merci!

+1

SHOUD tag "jquery-pile" être créé? – Diego

Répondre

2

Vous ajoutez actuellement à la collection, en poussant une nouvelle collection sur la pile qui est déjà le résultat (vous pouvez simplement retourner le résultat de this.add()). Qu'est-ce que cela fait est au lieu de pousser .b éléments sur la pile comme un nouvel élément, il pousse un nouvel ensemble avec .b éléments et le #2<li> vous avez commencé avec.

Au lieu de cela, vous devriez plutôt passer les éléments directement (pas d'appel .add()), comme ceci:

return this.pushStack(newCollection, "agregate", ""); 

You can test it out here.

+0

Dans votre exemple, les codes se comportent différemment parce qu'ils font vraiment des choses différentes et non parce qu'ils utilisent ou non pushStack, mais vous m'avez quand même aidé à créer un bon exemple: http://jsfiddle.net/Bz5n9/4/ – Diego

+0

@Diego - peut-être que je suis mal compris ... qu'est-ce que vous * voulez * arriver, et qu'est-ce qui brise vos attentes? Si cela vous aide, dans votre deuxième exemple, ce qui se passe est que, puisque vous retournez 'newCollection', il n'y a pas d'ensemble' .prevObject', donc '.end()' ne retourne rien. –

+0

Je voulais juste voir la différence entre utiliser et ne pas utiliser pushStack. Dans mon exemple, je pouvais réellement le voir. Dans votre exemple, la différence était parce que dans le premier cas, vous utilisez un ajout, et en second lieu, vous avez "changé" la collection à la nouvelle. – Diego