Object-oriented JavaScript template
This template make use of OOP techniques to encapsulate functionalities, producing reusable components.
define([ 'jquery' ], function ( $ ) {
'use strict'; var example = function ( $el, options ) {
this.$el = $el;
this.defaults = {
selectors: {
},
classes: {
hidden: 'hidden',
active: 'active'
}
}; this.settings = $.extend( {}, this.defaults, options );
}; Example.prototype = {
init: function () { // Only apply if initialisation has been done outside
// of the each loop in main.js
if ( !this.$el.length ) {
return false;
} this.bindEvents(); return this;
}, bindEvents: function () {
this.$el.on( 'click', this.handleActive );
this.$el.on( 'keydown', this.handleKeydown );
}, handleActive: function () {
}, handleKeydown: function () {
}
}; return example;
});