2
0
mirror of https://github.com/tenrok/bootstrap.git synced 2026-06-14 18:42:30 +03:00

implement global dispose method

This commit is contained in:
fat
2015-05-13 12:48:34 -07:00
parent dafdd180cd
commit f8b2569ec8
45 changed files with 976 additions and 439 deletions
+22 -4
View File
@@ -22,6 +22,8 @@ var ScrollSpy = (function ($) {
var NAME = 'scrollspy';
var VERSION = '4.0.0';
var DATA_KEY = 'bs.scrollspy';
var EVENT_KEY = '.' + DATA_KEY;
var DATA_API_KEY = '.data-api';
var JQUERY_NO_CONFLICT = $.fn[NAME];
var Default = {
@@ -29,9 +31,9 @@ var ScrollSpy = (function ($) {
};
var Event = {
ACTIVATE: 'activate.bs.scrollspy',
SCROLL: 'scroll.bs.scrollspy',
LOAD: 'load.bs.scrollspy.data-api'
ACTIVATE: 'activate' + EVENT_KEY,
SCROLL: 'scroll' + EVENT_KEY,
LOAD_DATA_API: 'load' + EVENT_KEY + '' + DATA_API_KEY
};
var ClassName = {
@@ -56,6 +58,7 @@ var ScrollSpy = (function ($) {
function ScrollSpy(element, config) {
_classCallCheck(this, ScrollSpy);
this._element = element;
this._scrollElement = element.tagName === 'BODY' ? window : element;
this._config = $.extend({}, Default, config);
this._selector = '' + (this._config.target || '') + ' .nav li > a';
@@ -114,6 +117,21 @@ var ScrollSpy = (function ($) {
_this._targets.push(item[1]);
});
}
}, {
key: 'dispose',
value: function dispose() {
$.removeData(this._element, DATA_KEY);
$(this._scrollElement).off(EVENT_KEY);
this._element = null;
this._scrollElement = null;
this._config = null;
this._selector = null;
this._offsets = null;
this._targets = null;
this._activeTarget = null;
this._scrollHeight = null;
}
}, {
key: '_getScrollTop',
@@ -240,7 +258,7 @@ var ScrollSpy = (function ($) {
* ------------------------------------------------------------------------
*/
$(window).on(Event.LOAD, function () {
$(window).on(Event.LOAD_DATA_API, function () {
var scrollSpys = $.makeArray($(Selector.DATA_SPY));
for (var i = scrollSpys.length; i--;) {