我对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或之前使用插件的经验中建议我能做什么?
非常感谢。
谢谢,
杰夫
答案 0 :(得分:0)
你可能想要'两层',就像'两个菜单'一样... jquery-bbq网站上更高级的例子可能就是你想要的: http://benalman.com/code/projects/jquery-bbq/examples/fragment-advanced/