Backbone.js 뷰에서 $ el과 el의 차이점은 무엇입니까?
당신은 차이 알려주세요 수 $el
와 el
Backbone.js보기의를?
당신이 이것을한다고 말할 수 있습니다
var myel = this.el; // here what you have is the html element,
//you will be able to access(read/modify) the html
//properties of this element,
이것으로
var my$el = this.$el; // you will have the element but
//with all of the functions that jQuery provides like,
//hide,show etc, its the equivalent of $('#myel').show();
//$('#myel').hide(); so this.$el keeps a reference to your
//element so you don't need to traverse the DOM to find the
// element every time you use it. with the performance benefits
//that this implies.
하나는 html 요소이고 다른 하나는 요소의 jQuery 객체입니다.
mu가 너무 짧 습니다.
this.$el = $(this.el);
그리고 그 이유를 이해하기 쉽습니다. 뷰의 _setElement
기능을 살펴보십시오 .
_setElement: function(el) { this.$el = el instanceof Backbone.$ ? el : Backbone.$(el); this.el = this.$el[0]; },
이렇게하면 el
속성이 항상 DOM 요소이고 $el
속성이 항상이를 래핑하는 jQuery 객체가됩니다. 따라서 el
옵션 또는 속성 으로 jQuery 객체를 사용하더라도 다음은 유효 합니다.
// 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')
});
캐시 된 jQuery 객체 란 무엇입니까?
재사용 목적으로 변수에 할당 된 jQuery 객체입니다. $(selector)
매번 DOM을 통해 요소를 찾는 비용이 많이 드는 작업을 피할 수 있습니다.
예를 들면 다음과 같습니다.
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');
}
더 많은 것을 알기 위해 내가 쓴 광범위한 답변을 참조하십시오 .
간단히 말해서, el은 HTML DOM 요소에 대한 액세스를 제공합니다. 즉, 참조하고 액세스 할 수있는 반면 $ el은 el 주위의 jQuery 래퍼입니다.
$ el은 특정 DOM 요소에 대한 액세스를 제공 할뿐만 아니라 jQuery 선택기 역할을하며 특정 DOM 요소에서 show (), hide () 등과 같은 jQuery 라이브러리 함수를 사용할 수있는 권한이 있습니다.
It is so late to answer it but --> this.$el
is a reference to the element in the context of jQuery, typically for use with things like .html()
or .addClass()
, etc. For example, if you had a div with id someDiv, and you set it to the el property of the Backbone view, the following statements are identical:
this.$el.html() $("#someDiv").html() $(this.el).html()
this.el
is the native DOM element, untouched by jQuery.
'IT Share you' 카테고리의 다른 글
'git remote add upstream'은 무엇을 도와 줍니까? (0) | 2020.12.08 |
---|---|
Python "개인"함수 코딩 규칙 (0) | 2020.12.08 |
데이터웨어 하우스 대 OLAP 큐브? (0) | 2020.12.08 |
오류 : 잡히지 않음 (약속에서) : 오류 : 어떤 경로도 일치 할 수 없습니다 Angular 2 (0) | 2020.12.08 |
프로젝트에 어셈블리 파일이 포함 된 경우 잘못된 mmap 동작 (0) | 2020.12.08 |