2009-08-17 5 views
0

私は現在、デンマークの会社のウェブサイトで作業しています。コンテンツはすべて1ページに収められており、jQueryのスクロールやものがいくつか含まれています。いいです!ナビゲーションリンクのスタイルを変更する - 次のボタンと前のボタンを含む

メニューでは、アクティブな要素が太字になるように要素をプログラムするように求められます。それも私がやったこと。

問題はここにあります。
クライアントは、ホームボタンと次と前のボタンが必要です。しかし、それらをクリックするとページがスクロールすると、アクティブな要素のCSSクラスは変更されないので、メニューの太字要素は最後にクリックされたページです。

誰もが助けることを願っています。コードをデバッグすることは非常に困難であるので、あなたはスクリプトの縮小さバージョンを使用 http://vedelform.dk/new/intro/

+0

スクロールアローにイベントハンドラをバインドする場所に関連するjQueryコードを表示できますか? –

+0

@Russ:コードはここにあります:http://www.vedelform.dk/new/wp-content/themes/vedelform/js/init.jsイベントハンドラは、SerialScrollプラグインの奥深くにあります。 –

+0

@crescentfresh - 私はコードを調べ始めました。すべての人が拘束されている場所を尋ねる方が簡単かもしれないと思っています:) –

答えて

1

画像のイベントハンドラは、serialscrollプラグインの呼び出しに加えて、ナビゲーションリンク上の適切なクラス名を更新する必要があります。ナビゲーションリンクを直接クリックすると、changeActiveStates関数が呼び出されますが、ホーム、次、および前のボタンでは発生していません。

serialScrollプラグインのonBefore属性を使用して、どのナビゲーションリンクがクラス名を受け取ることになっているかを把握するメソッドを定義する必要があります。次に、changeActiveStates関数を呼び出すことができます。

あなたの問題を解決するためには、もう少し多くのコード行がかかるようには見えません。それを働かせるためにもっと助けが必要な場合は、私に教えてください。


編集:

easing: 'swing', 
onBefore:function(e, elem, $pane, $items, pos){ 
    if ((pos >= 0)&&(pos < $('ul.navigation > li > a').size())) changeActiveStates($('ul.navigation > li > a').get(pos)); 
    return true; 
}

あなたは、おそらく(changeActiveStatesを呼び出す必要があります:あなたはこれを追加する場合

は、あなたがビジネスにする必要があります(init.jsのライン84から始まります)関数を初期化した後に)ページロード時に正しいメニュー項目を初期化します。

私はそれが役に立ちそうです。それがあなたに何か問題を与えるかどうか私に知らせてください。

+0

私のスクリプトを手伝ってもらえますか? –

+0

確かに、私は今夜それをもう一度見ます。 –

+0

ありがとう!それは完全に動作します! –

0

ページはで見ることができます。また、あなたが使用しているプラ​​グインの名前を教えてくれませんでした。私はプラグインにバグがあると思う。 cssクラス "selected"は、あるメニュー項目から別のメニュー項目にジャンプする可能性があるためです。

+0

プラグインはserialScrollです:http://flesler.blogspot.com/2008/02/jqueryserialscroll。 html –

0

@Jason Francis: あなたはおそらく正しいでしょう。私はそれほどjQueryとJavascriptではないし、これまでのやり方は知識よりも運が多い。私は多くの試行錯誤を行いました。
changeActiveStatesを呼び出す要素を見つけるためにserialScrollプラグインを取得することについて、あなたが言っていることを理解していますが、私は真剣にそれを行う方法を知らない。

関連する問題