mu est trop court c'est exactement ça :
this.$el = $(this.el);
Et il est facile de comprendre pourquoi, regardez les de la vue _setElement
fonction :
_setElement: function(el) {
this.$el = el instanceof Backbone.$ ? el : Backbone.$(el);
this.el = this.$el[0];
},
Cela permet de garantir que le el
est toujours un élément DOM, et que la propriété $el
est toujours un objet jQuery qui l'enveloppe. Ainsi, ce qui suit est valable même si j'ai utilisé un objet jQuery comme propriété el
option ou propriété :
// Passing a jQuery object as the `el` option.
var myView = new Backbone.View({ el: $('.selector') });
// Using a jQuery object as the `el` View class property
var MyView = Backbone.View.extend({
el: $('.selector')
});
Qu'est-ce qu'un objet jQuery en cache ?
C'est un objet jQuery assigné à une variable pour être réutilisé. Cela évite l'opération coûteuse de trouver l'élément à travers le DOM avec quelque chose comme $(selector)
à chaque fois.
Voici un exemple :
render: function() {
this.$el.html(this.template(/* ...snip... */));
// this is caching a jQuery object
this.$myCachedObject = this.$('.selector');
},
onExampleEvent: function(e) {
// Then it avoids $('.selector') here and on any sub-sequent "example" events.
this.$myCachedObject.toggleClass('example');
}
Voir un réponse détaillée J'ai écrit pour en savoir plus.
3 votes
L'avez-vous vérifié dans le documentation ?
0 votes
Duplicata possible de Pourquoi une variable JavaScript commence-t-elle par un signe de dollar ?
1 votes
Je n'ai pas compris ce que signifie cette déclaration "objet jQuery en cache" pour $sl.
4 votes
Il s'agit simplement d'une référence à l'objet jquery, ce qui vous évite de le rechercher à chaque fois qu'il est utilisé, ce qui peut nuire aux performances.
9 votes
this.$el = $(this.el)
plus ou moins.0 votes
Duplicata possible de Quelle est la différence entre : $(this.el).html et this.$el.html