jQuery BBQ插件混乱

时间:2012-04-02 19:41:53

标签: javascript jquery ruby-on-rails

我对JavaScript和jQuery相对较新。

我正在使用jQuery BBQ插件来提供后台页面功能。我有以下实现:

// Be sure to bind to the "hashchange" event on document.ready, not
// before, or else it may fail in IE6/7. This limitation may be
// removed in a future revision.
$(function(){

  // Override the default behavior of all `a` elements so that, when
  // clicked, their `href` value is pushed onto the history hash
  // instead of being navigated to directly.
  $(".content a").click(function(){
    var href = $(this).attr( "href" );

    // Push this URL "state" onto the history hash.
    $.bbq.pushState({ url: href });

    // Prevent the default click behavior.
    return false;
  });

  // Bind a callback that executes when document.location.hash changes.
  $(window).bind( "hashchange", function(e) {
    // In jQuery 1.4, use e.getState( "url" );
    var url = $.bbq.getState( "url" );

    // In this example, whenever the event is triggered, iterate over
    // all `a` elements, setting the class to "current" if the
    // href matches (and removing it otherwise).
    $("a").each(function(){
      var href = $(this).attr( "href" );

      if ( href === url ) {
        $(this).addClass( "current" );
      } else {
        $(this).removeClass( "current" );
      }
    });

    console.log(url)
    $.getScript(url)

  });

  // Since the event is only triggered when the hash changes, we need
  // to trigger the event now, to handle the hash the page may have
  // loaded with.
  $(window).trigger( "hashchange" );
});

现在这很好用,如果我直接访问mysite.com/brands,网址加载正常,当我点击一个标签时,网址会显示为http://localhost:3000/trends#url=/trends/latest,这样就可以了,后退按钮可以正常运行浏览页面上的其他标签。

$。getScript调用当前将我的部分加载到模板中的JavaScript。

问题在于它似乎只能在单层基础上工作。如果我单击我的父导航项趋势,然后单击选项卡,则插件不起作用。就像它拒绝看到它一样。

我可以看到BBQ插件具有高级功能,但我不确定我想要的是否是高级功能。

任何人都可以从jQuery或之前使用插件的经验中建议我能做什么?

非常感谢。

谢谢,

杰夫

1 个答案:

答案 0 :(得分:0)

你可能想要'两层',就像'两个菜单'一样... jquery-bbq网站上更高级的例子可能就是你想要的: http://benalman.com/code/projects/jquery-bbq/examples/fragment-advanced/