From 8651d69b425a5ce79381ed7bbb9e31543121e5ea Mon Sep 17 00:00:00 2001 From: Josh Johnson Date: Tue, 15 Mar 2016 14:39:22 +0000 Subject: [PATCH] Class structuring + event listeners --- assets/js/src/choices.js | 62 ++++++++++++++++++++++++++++++++++++++++ index.html | 11 +++++++ 2 files changed, 73 insertions(+) diff --git a/assets/js/src/choices.js b/assets/js/src/choices.js index e69de29..7f4333c 100644 --- a/assets/js/src/choices.js +++ b/assets/js/src/choices.js @@ -0,0 +1,62 @@ +'use strict'; + +class Choices { + constructor() { + const DEFAULT_CONFIG = { + element: '[data-choice]', + disabled: false, + maxItems: 0, + debug: false, + callbackOnInit: function(){}, + callbackOnKeyDown: function(){}, + callbackOnEnter: function(){}, + callbackOnSearch: function(){} + }; + + this.onClick = this.onClick.bind(this); + this.onKeyDown = this.onKeyDown.bind(this); + this.onChange = this.onChange.bind(this); + this.onFocus = this.onFocus.bind(this); + this.onBlur = this.onChange.bind(this); + + this.render(); + } + + onKeyDown() { + console.log('Key down'); + } + + onFocus() { + console.log('Focus'); + } + + onClick() { + console.log('Click'); + } + + onChange() { + console.log('Change'); + } + + addEventListeners() { + document.addEventListener('click', this.onClick); + document.addEventListener('keydown', this.onKeyDown); + document.addEventListener('change', this.onChange); + document.addEventListener('focus', this.onFocus); + document.addEventListener('blur', this.onBlur); + } + + removeEventListeners() { + document.removeEventListener('click', this.onClick); + document.removeEventListener('keydown', this.onKeyDown); + document.removeEventListener('change', this.onChange); + document.removeEventListener('focus', this.onFocus); + document.removeEventListener('blur', this.onBlur); + } + + render(){ + console.log('Render'); + } +} + +new Choices(); \ No newline at end of file diff --git a/index.html b/index.html index e69de29..e98bb7b 100644 --- a/index.html +++ b/index.html @@ -0,0 +1,11 @@ + + + + + Choices + + + + + + \ No newline at end of file