Bạn có thể cho biết sự khác biệt giữa $el
và el
trong chế độ xem Backbone.js không?
Trả lời
cho phép nói rằng bạn làm điều này
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,
với điều này
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.
là một trong những yếu tố html và người kia là đối tượng jQuery của nguyên tố này.
Có hợp lệ để viết truy vấn về điều này. $ el? Ví dụ: viết $ el (". Some-class") để lấy phần tử với .some-class được chứa trong html của khung nhìn. – MobileDream
có nó hoàn toàn hợp lệ. –
Không phải cho tôi, 'này. $ El ('. Class')' lưới tôi $ el không phải là một hàm, tôi phải sử dụng find: 'this. $ El.find ('. Class')' –
Đó là quá muộn để trả lời nó, nhưng -> this.$el
là một tài liệu tham khảo đến phần tử trong bối cảnh của jQuery, thường để sử dụng với những thứ như .html()
hoặc .addClass()
vv Ví dụ, nếu bạn có một div với id someDiv và bạn đặt nó vào el tài sản của quan điểm Backbone, thông báo sau đều giống hệt nhau:
this.$el.html() $("#someDiv").html() $(this.el).html()
this.el
là phần tử DOM bản địa, không bị ảnh hưởng bởi jQuery.
mu is too short là chính xác đúng:
this.$el = $(this.el);
Và thật dễ dàng để hiểu lý do tại sao, nhìn vào view's _setElement
function:
_setElement: function(el) { this.$el = el instanceof Backbone.$ ? el : Backbone.$(el); this.el = this.$el[0]; },
này đảm bảo rằng el
luôn a là Phần tử DOM và $el
luôn là đối tượng jQuery của nó. Vì vậy, sau đây là hợp lệ mặc dù tôi đã sử dụng một đối tượng jQuery như el
tùy chọn hoặc tài sản:
var myView = new Backbone.View({ el: $('.selector') });
// or
var MyView = Backbone.View.extend({
el: $('.selector')
});
một đối tượng jQuery cache là gì?
Đó là một đối tượng jQuery được lưu giữ bên trong một biến cho mục đích tái sử dụng. Nó tránh các hoạt động tốn kém của việc tìm kiếm các yếu tố với một cái gì đó như $(selector)
mỗi lần.
Dưới đây là một ví dụ:
render: function() {
this.$el.html(this.template(/* ...snip... */));
// this is caching a jQuery object
this.$myCachedObject = this.$('.selector');
},
onExampleEvent: function(e) {
// avoids $('.selector') here and on any sub-sequent example events.
this.$myCachedObject.toggleClass('example');
}
Xem một extensive answer Tôi đã viết thư cho biết thêm.
Tóm lại, el cung cấp cho bạn quyền truy cập vào các phần tử HTML DOM, tức là bạn có thể tham chiếu và truy cập chúng, trong khi $ el là trình bao bọc jQuery quanh el.
$ el không chỉ cung cấp quyền truy cập vào phần tử DOM cụ thể, hơn nữa nó hoạt động như bộ chọn jQuery và bạn có đặc quyền sử dụng các hàm thư viện jQuery như show(), hide(), v.v ... trên phần tử DOM cụ thể.
Đó là về jQuery và câu hỏi là về 'backbone.js' –
- 1. Backbone.Js - sự khác nhau giữa el và $ el là gì?
- 2. sự kiện backbone.js và el
- 3. cách thích hợp để chỉ định động xem backbone.js el
- 4. Backbone.js render(). El Cách sử dụng
- 5. Thay thế giữa 2 mẫu khác nhau trong backbone.js
- 6. Sự khác nhau giữa hai mã javascript là gì?
- 7. Sự khác nhau giữa == và = trong Prolog là gì?
- 8. Sự khác nhau giữa @Secured và @PreAuthorize trong bảo mật mùa xuân 3 là gì?
- 9. Gấp đôi các biến EL lồng nhau?
- 10. Kích hoạt sự kiện trên el trong Backbone View
- 11. Trong Python, sự khác nhau giữa ".append()" và "+ = []" là gì?
- 12. Sự khác nhau giữa // và /// trong Visual Studio là gì?
- 13. Sự khác nhau giữa: = và + = trong tạo tệp là gì?
- 14. Sự khác nhau giữa * và. * Trong MATLAB là gì?
- 15. Sự khác nhau giữa $ @ và $ * trong UNIX là gì?
- 16. Sự khác nhau giữa: = và = trong MySQL là gì?
- 17. Sự khác nhau giữa "||" là gì và "hoặc" trong Perl?
- 18. Sự khác nhau giữa 'eq' và '= ~' trong Perl là gì?
- 19. Sự khác nhau giữa 'và #' trong Lisp là gì?
- 20. Biến EL trong JSF ResourceBundle
- 21. Sự khác nhau giữa isSaleable() và isAvailable() là gì?
- 22. Sự khác nhau giữa Thread.start() và Thread.run() là gì?
- 23. Sự khác nhau giữa LinFu.DynamicProxy và Castle.DynamicProxy là gì?
- 24. Sự khác nhau giữa navigationController.navigationBarHidden và navigationController.navigationBar.hidden là gì?
- 25. Sự khác nhau giữa AlertDialog.builder.setView và Dialog.setContentView là gì?
- 26. Sự khác nhau giữa: trước và :: trước là gì?
- 27. Sự khác nhau giữa Ctrl-C và SIGINT là gì?
- 28. Sự khác nhau giữa Tomcat, JBoss và Glassfish là gì?
- 29. Sự khác nhau giữa isAlpha và isLetter là gì?
- 30. Sự khác nhau giữa XHTML và HTML là gì?
Bạn đã kiểm tra nó trong [tài liệu] (http://backbonejs.org/#View-el) chưa? – nemesv
bản sao có thể có của [Tại sao biến JavaScript bắt đầu bằng ký hiệu đô la?] (Http: // stackoverflow.com/questions/205853/why-would-a-javascript-variable-start-with-a-đô-la-ký) – Quentin
Tôi không nhận được câu lệnh này có nghĩa là "đối tượng jQuery được lưu trong bộ nhớ cache" cho $ sl –