From 13b0ad789ac3cb1fbcc1df4afb179709ca502f1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B3=BD=ED=9D=AC=EB=82=98?= Date: Tue, 29 Oct 2019 15:41:13 +0900 Subject: [PATCH] fix: set events after rendering a selectbox (fix #37) (#38) * fix: set events after rendering a selectbox (fix #37) * chore: apply code review --- src/js/timepicker/selectbox.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/js/timepicker/selectbox.js b/src/js/timepicker/selectbox.js index a4dc439..d134606 100644 --- a/src/js/timepicker/selectbox.js +++ b/src/js/timepicker/selectbox.js @@ -99,10 +99,12 @@ var Selectbox = snippet.defineClass( }; if (this._element) { - domUtil.removeElement(this._element); + this._removeElement(); } + this._container.innerHTML = tmpl(context); this._element = this._container.firstChild; + domUtil.on(this._element, 'change', this._onChangeHandler, this); }, /** @@ -131,8 +133,6 @@ var Selectbox = snippet.defineClass( * @private */ _setEvents: function() { - domUtil.on(this._element, 'change', this._onChangeHandler, this); - this.on( 'changeItems', function(items) { @@ -149,8 +149,15 @@ var Selectbox = snippet.defineClass( */ _removeEvents: function() { this.off(); + }, + /** + * Remove element + * @private + */ + _removeElement: function() { domUtil.off(this._element, 'change', this._onChangeHandler, this); + domUtil.removeElement(this._element); }, /** @@ -203,7 +210,7 @@ var Selectbox = snippet.defineClass( */ destroy: function() { this._removeEvents(); - domUtil.removeElement(this._element); + this._removeElement(); this._container = this._items = this._selectedIndex = this._element = null; } }