Backbone.NativeView
A drop-in replacement for Backbone.View that uses only native DOM methods for element selection and event delegation. It has no dependency on jQuery.
NOTE: Backbone.NativeView relies on version 1.2.0 of Backbone. Backbone 1.1.2 is not compatible with Backbone.NativeView.
To Use:
Load Backbone.NativeView with your favorite module loader or add as a script tag after you have loaded Backbone in the page. Wherever you had previously inherited from Backbone.View, you will now inherit from Backbone.NativeView.
var MyView = BackboneNativeView;
As an alternative, you may extend an existing View's prototype to use native methods, or even replace Backbone.View itself:
var MyBaseView = BackboneView;
or
var MyBaseView = BackboneView; _;
or
BackboneView = BackboneNativeView; var MyView = BackboneView;
Features:
Delegation:
var view = el: '#my-element';view;
Undelegation with event names or listeners,
view;view;
View-scoped element finding:
// for one matched element_; // for multiple matched elements_;var fields = _;
Requirements:
NativeView makes use of querySelector
and querySelectorAll
. For IE7 and
below you must include a polyfill.
Notes:
- The
$el
property no longer exists on Views. Useel
instead. View#$
returns a NodeList instead of a jQuery context. You can iterate over either using_.each
.
With many thanks to @wyuenho for his initial code.