2012-04-23 9 views
1

例: http://jsfiddle.net/dfcyb/問題フィルタリングhrefのリンクからハッシュし、それを選択

私は、これら二つのVARSを持っている特定のセクションでは、ビューポートであるとするかどうかをチェック

var inview = '#' + $("#container > .section > h1:in-viewport:first").parent().attr('id'); 
var $link = $('#menu a').filter('a[hash=' + inview + ']'); 

のInView $ link varを使用してクラスを追加します。私はここで何が間違っているのか分かりません。審査はうまくいきますが、

$link.parent().addClass('selected'); 

は何もしません。私はここで何が間違っているのか、また、console.log($ link)は役に立ちませんので、デバッグ方法については分かりません。フィルタがここで使用されているかどうかはわかりません。

+2

'a [hash ='は 'a [href ='にする必要があります。 –

+0

はフィドルで、inviewは "#undefined"を返します。あなたのフィドルは、あなたが修正しようとしているコードにもっと似ている必要がありますか? – jlaceda

答えて

1

a[hash=$=手段は、で終わるa[href$=

でなければなりません。

は交換してください:

... $('#menu a').filter('a[hash=' + inview + ']'); 

をして:

... $('#menu a[href$="' + inview + '"]'); 

出典:http://api.jquery.com/attribute-ends-with-selector/

+0

これはうまくいきました、ありがとう! – Tom

+0

@Tom Glad私は助けることができました。可能であれば受け入れてください。ありがとう。 – iambriansreed

0

あなたjsFiddleで多くの問題があります。

先には、:in-viewportセレクタがありません。そのためには、プラグイン(this oneなど)を使用する必要があります。

第2、$("#container > .section > h1")。あなたの例では、<h1>タグはありません。

最後に、<a>タグにはhash属性がありません。a[href='']である必要があります。

第四に、$link<a>タグですが、あなたのCSSには、selectedクラスが<li>にする必要があります。 、#undefinedさ

$("#container > .section > h1:in-viewport:first") 

から来ていること、あなたドン:http://jsfiddle.net/dfcyb/1/

0

私はあなたがしたいと思います:

$("#container > .section > h1.in-viewport:first") 

の代わりにここで

が更新例ですjsfiddleのサンプルコードにH1タグがありません。