ScrollSpy“激活”事件不会触发

时间:2012-07-18 23:23:05

标签: javascript jquery twitter-bootstrap

我读到了这个问题: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");
});

当然,手动触发它会运行该功能,但无论我尝试做什么,它似乎都不起作用。

有什么想法吗?

2 个答案:

答案 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')
相关问题