我读到了这个问题:How to use Twitter Bootstrap ScrollSpy to execute a function,说首先抓住事件,然后添加某个功能。首先,我对jQuery相对较新,所以我不知道如何抓住一个事件。
这是我的代码:
$(".navbar").scrollspy();
$('[data-spy="scroll"]').each(function()
{
$(this).scrollspy('refresh');
});
$("ul.nav li").on("activate", function()
{
console.log("ACTIVATED");
});
当然,手动触发它会运行该功能,但无论我尝试做什么,它似乎都不起作用。
有什么想法吗?
答案 0 :(得分:2)
您的代码是正确的,Bootstrap的最新版本(2.1.0)修复了该问题。
请参阅https://github.com/twitter/bootstrap/issues/3316并访问此处的工作脚本:https://github.com/twitter/bootstrap/blob/2.1.0-wip/js/bootstrap-scrollspy.js。
答案 1 :(得分:1)
您的li元素可能缺少下拉类
li.dropdown
否则它将无法工作,因为当你的元素具有父匹配的.dropdown-menu时,他特意寻找.dropdown ...而在我的情况下,它始终是真的。 以下是在bootstrap中执行此操作的代码:
active = $(selector)
.parent('li')
.addClass('active')
if (active.parent('.dropdown-menu')) {
active = active.closest('li.dropdown').addClass('active')
}
active.trigger('activate')