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:
Vendored
+22
-4
@@ -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--;) {
|
||||
|
||||
Reference in New Issue
Block a user