jQuery BBQ を理解するのに非常に苦労していますが、うまくいきません。理解しなければならないことがいくつかありますが、その部分をノックアウトすることが他の問題の解決につながることを期待して、最も重要であると私が信じるものに焦点を当ててみます.
それぞれが非表示になっている 3 つのセクションを含むページがあります。ユーザーがナビゲーション リンクをクリックすると、対応するセクションが展開され、他のセクション (アクティブな場合) は非表示になります。URL は、ページを表すハッシュで更新されます。とlocalhost
なりlocalhost/#work
ます。私のコードでは、これは正しく機能します。
セクション内には、#work
さまざまなビデオに対応する複数のサムネイルがあり、URL に値を追加して、ブックマークやその他の愛を許可しようとしているため、jQuery BBQ を使用しています。この種の作品は、URLが醜くなるという小さな問題があります。localhost
になりlocalhost/#work=&misery=
ます。見苦しいですが、正しく更新されています (セクションは意図したとおりに開いたままです)。
ここに商品があります:
イベントが発生するhashchange
と、超大規模な hash-bash 関数が実行され、URL のハッシュ値がチェックされ、適切なセクションが開きます。jQuery BBQ の.getState()
メソッドを使用して、URL からビデオの値を取得し、そのサムネイルをクリックするにはどうすればよいですか?
どうもありがとうございます。長くなってしまいましたが、できるだけ明確に説明したいと思います。以下のjsFiddleを見つけてください(ただし、その環境ではハッシュをまったく表示できません...うーん!)生のコードだけでなく。
http://jsfiddle.net/danielredwood/n2KWv/2/
JavaScript:
function navi(){
var hash = window.location.hash,
hspl = hash.split('=')[0],
acti = $('.out')
test = $.bbq.getState();
console.log(test);
if (!$('body').hasClass('work')){
acti.removeClass('out').slideUp(400);
$(hash).addClass('out').slideDown(400);
} else {
if (hspl != '#work') {
$('body').removeClass('work');
acti.removeClass('out').slideUp(400);
$(hash).addClass('out').slideDown(400);
}
}
}
/* Nav */
$(window).bind('hashchange', function(){
navi();
});
/* Thumbnail Clicks */
$('.thumbnail a').click(function(){
$('body').addClass('work');
var name = $(this).attr('id');
$.bbq.pushState(name);
return false;
});
</p>