このhttps://stackoverflow.com/a/13460392/1407478のように、必要な機能でScrollSpyを拡張することをお勧めします
除外可能な ID を持つ ScrollSpy 拡張機能:
// save the original function object
var _superScrollSpy = $.fn.scrollspy;
// add a array of id's that need to be excluded
$.extend( _superScrollSpy.defaults, {
excluded_ids : []
});
// create a new constructor
var ScrollSpy = function(element, options) {
_superScrollSpy.Constructor.apply( this, arguments )
}
// extend prototypes and add a super function
ScrollSpy.prototype = $.extend({}, _superScrollSpy.Constructor.prototype, {
constructor: ScrollSpy
, _super: function() {
var args = $.makeArray(arguments)
// call bootstrap core
_superScrollSpy.Constructor.prototype[args.shift()].apply(this, args)
}
, activate: function (target) {
//if target is on our exclusion list, prevent the scrollspy to activate
if ($.inArray(target, this.options.excluded_ids)>-1) {
return
}
this._super('activate', target)
}
});
// override the old initialization with the new constructor
$.fn.scrollspy = $.extend(function(option) {
var args = $.makeArray(arguments),
option = args.shift()
//this runs everytime element.scrollspy() is called
return this.each(function() {
var $this = $(this)
var data = $this.data('scrollspy'),
options = $.extend({}, _superScrollSpy.defaults, $this.data(), typeof option == 'object' && option)
if (!data) {
$this.data('scrollspy', (data = new ScrollSpy(this, options)))
}
if (typeof option == 'string') {
data[option].apply( data, args )
}
});
}, $.fn.scrollspy);
http://twitter.github.com/bootstrap/javascript.html#scrollspyの例で、ScrollSpy が表示されないようにする場合は、次の#mdo
ように初期化する必要があります。
$(".scrollspy-example").scrollspy({
excluded_ids : ['#mdo']
});
コードを別のファイル scrollspy-addon.js に配置し、それを含めて、scrollspy を初期化することができます
$("#your-scrollspy-id").scrollspy({
excluded_ids : ['#login']
});