From f8b2569ec8956a1f4d09fe6fc9865bd200ecde43 Mon Sep 17 00:00:00 2001 From: fat Date: Wed, 13 May 2015 12:48:34 -0700 Subject: implement global dispose method --- js/dist/modal.js | 62 ++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 42 insertions(+), 20 deletions(-) (limited to 'js/dist/modal.js') diff --git a/js/dist/modal.js b/js/dist/modal.js index 9170fca4b9..25292b2758 100644 --- a/js/dist/modal.js +++ b/js/dist/modal.js @@ -22,6 +22,8 @@ var Modal = (function ($) { var NAME = 'modal'; var VERSION = '4.0.0'; var DATA_KEY = 'bs.modal'; + var EVENT_KEY = '.' + DATA_KEY; + var DATA_API_KEY = '.data-api'; var JQUERY_NO_CONFLICT = $.fn[NAME]; var TRANSITION_DURATION = 300; var BACKDROP_TRANSITION_DURATION = 150; @@ -33,17 +35,17 @@ var Modal = (function ($) { }; var Event = { - HIDE: 'hide.bs.modal', - HIDDEN: 'hidden.bs.modal', - SHOW: 'show.bs.modal', - SHOWN: 'shown.bs.modal', - DISMISS: 'click.dismiss.bs.modal', - KEYDOWN: 'keydown.dismiss.bs.modal', - FOCUSIN: 'focusin.bs.modal', - RESIZE: 'resize.bs.modal', - CLICK: 'click.bs.modal.data-api', - MOUSEDOWN: 'mousedown.dismiss.bs.modal', - MOUSEUP: 'mouseup.dismiss.bs.modal' + HIDE: 'hide' + EVENT_KEY, + HIDDEN: 'hidden' + EVENT_KEY, + SHOW: 'show' + EVENT_KEY, + SHOWN: 'shown' + EVENT_KEY, + FOCUSIN: 'focusin' + EVENT_KEY, + RESIZE: 'resize' + EVENT_KEY, + CLICK_DISMISS: 'click.dismiss' + EVENT_KEY, + KEYDOWN_DISMISS: 'keydown.dismiss' + EVENT_KEY, + MOUSEUP_DISMISS: 'mouseup.dismiss' + EVENT_KEY, + MOUSEDOWN_DISMISS: 'mousedown.dismiss' + EVENT_KEY, + CLICK_DATA_API: 'click' + EVENT_KEY + '' + DATA_API_KEY }; var ClassName = { @@ -114,10 +116,10 @@ var Modal = (function ($) { this._setEscapeEvent(); this._setResizeEvent(); - $(this._element).on(Event.DISMISS, Selector.DATA_DISMISS, $.proxy(this.hide, this)); + $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, $.proxy(this.hide, this)); - $(this._dialog).on(Event.MOUSEDOWN, function () { - $(_this._element).one(Event.MOUSEUP, function (event) { + $(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () { + $(_this._element).one(Event.MOUSEUP_DISMISS, function (event) { if ($(event.target).is(_this._element)) { that._ignoreBackdropClick = true; } @@ -150,8 +152,8 @@ var Modal = (function ($) { $(this._element).removeClass(ClassName.IN); - $(this._element).off(Event.DISMISS); - $(this._dialog).off(Event.MOUSEDOWN); + $(this._element).off(Event.CLICK_DISMISS); + $(this._dialog).off(Event.MOUSEDOWN_DISMISS); if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) { @@ -160,6 +162,26 @@ var Modal = (function ($) { this._hideModal(); } } + }, { + key: 'dispose', + value: function dispose() { + $.removeData(this._element, DATA_KEY); + + $(window).off(EVENT_KEY); + $(document).off(EVENT_KEY); + $(this._element).off(EVENT_KEY); + $(this._backdrop).off(EVENT_KEY); + + this._config = null; + this._element = null; + this._dialog = null; + this._backdrop = null; + this._isShown = null; + this._isBodyOverflowing = null; + this._ignoreBackdropClick = null; + this._originalBodyPadding = null; + this._scrollbarWidth = null; + } }, { key: '_showElement', @@ -219,13 +241,13 @@ var Modal = (function ($) { var _this4 = this; if (this._isShown && this._config.keyboard) { - $(this._element).on(Event.KEYDOWN, function (event) { + $(this._element).on(Event.KEYDOWN_DISMISS, function (event) { if (event.which === 27) { _this4.hide(); } }); } else if (!this._isShown) { - $(this._element).off(Event.KEYDOWN); + $(this._element).off(Event.KEYDOWN_DISMISS); } } }, { @@ -277,7 +299,7 @@ var Modal = (function ($) { $(this._backdrop).appendTo(this.$body); - $(this._element).on(Event.DISMISS, function (event) { + $(this._element).on(Event.CLICK_DISMISS, function (event) { if (_this6._ignoreBackdropClick) { _this6._ignoreBackdropClick = false; return; @@ -442,7 +464,7 @@ var Modal = (function ($) { * ------------------------------------------------------------------------ */ - $(document).on(Event.CLICK, Selector.DATA_TOGGLE, function (event) { + $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { var _this7 = this; var target = undefined; -- cgit v1.2.3