1

我正在尝试使用 scrollspy,但在http://twitter.github.com/bootstrap/javascript.html#scrollspy,该示例似乎不起作用,并且还有一个提示:

Heads up! Navbar links must have resolvable id targets. For example, a <a href="#home">home</a> must correspond to something in the dom like <div id="home"></div>. 

问题是 scrollspy 只是我网站中的一项功能,即使页面中没有 id 目标,它也总是会加载,这会导致 headup 预测的错误。

错误:

uncaught exception: Syntax error, unrecognized expression: #

当我使用 scrollTo.js 插件时也会发生同样的错误。

所以我试图添加一个条件,仅当 DOM 中有 id 目标时才激活 scrollspy。

  $('.nav-scrollspy').each(function() {
              var $nav = $(this).find('a');
                var linkHref = $nav.attr('href').split('#')[1];
                if ($('#' + linkHref).length) {
                $(this).scrollspy();
                }
  });

以上失败了,因为我认为我应该只过滤到从链接中找到的第一个哈希值。

任何有关该问题的提示或其他更好的方法将不胜感激。谢谢

4

1 回答 1

2

更改此行

if ($('#' + linkHref).length) {

if ($.trim(linkHref).length > 0) {

它应该可以正常工作。

此行之后的原因

var linkHref = $nav.attr('href').split('#')[1];

linkHref是一个string

所以在这种情况下根本不需要将它包裹在$对象周围并且可能导致错误,我正在使用$.trimtrim关闭任何不是强制性的空格,但在这种情况下这是一个很好的做法。

于 2012-06-03T07:53:09.877 回答