Quelle est la différence entre :
$(this.el).html
y
this.$el.html
J'ai lu quelques exemples d'épines dorsales et certains le font d'une façon et d'autres d'une autre.
Quelle est la différence entre :
$(this.el).html
y
this.$el.html
J'ai lu quelques exemples d'épines dorsales et certains le font d'une façon et d'autres d'une autre.
$(this.el)
enveloppe un élément avec jQuery (ou Zepto). Donc, si votre vue HTML était la suivante :
<div id="myViewElement"></div>
...et this.el
a référencé cette division, alors $(this.el)
serait l'équivalent de la récupérer directement via jQuery : $('#myViewElement')
.
this.$el
est une référence en mémoire cache à l'objet jQuery (ou Zepto), donc une copie de ce que vous obtiendriez en appelant $(this.el)
. L'intention est de vous éviter d'avoir à appeler $(this.el)
ce qui peut entraîner une certaine surcharge et donc des problèmes de performance.
Veuillez noter : les deux ne sont PAS équivalents. this.el
seul est une référence à un objet hôte HTMLElement -- aucune bibliothèque n'est impliquée. C'est le retour de document.getElementById
. $(this.el)
crée une nouvelle instance de l'objet jQuery/Zepto. this.$el
fait référence à une seule instance de l'ancien objet. Il n'est pas "mauvais" d'utiliser l'une ou l'autre de ces méthodes, tant que vous comprenez les coûts des appels multiples à $(this.el)
.
En code :
this.ele = document.getElementById('myViewElement');
this.$ele = $('#myViewElement');
$('#myViewElement') == $(this.ele);
En outre, il convient de mentionner que jQuery et Zepto ont des caches internes partiels, de sorte que les appels supplémentaires à $(this.el)
puede finit par retourner un résultat en cache de toute façon, et c'est pourquoi je dis "peut avoir des problèmes de performance". Il se peut aussi que ce ne soit pas le cas.
Documentation
view.$el
- http://backbonejs.org/#View-$el
$
dans l'épine dorsale - http://backbonejs.org/#View-dollar
Les deux sont équivalents, avec $el
être un version cachée des objets jQuery ou Zepto el
La raison pour laquelle vous voyez des exemples utilisant $(this.el)
c'est parce qu'il n'a été ajouté que plus tard libérer de backbone.js (0.9.0).
Ils produisent exactement la même chose, c'est-à-dire une référence à l'élément d'une vue. $el est simplement une enveloppe jquery pour $(this.el). Regardez cette référence : http://documentcloud.github.com/backbone/#View- $el
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.