2012-01-27 8 views
0
<!-- start menu area --> 
<div id="menu" class="editable"> 
<div id="button1" class="repeatable"><a href="/section1.php">Section 1</a></div> 
<div id="button2" class="repeatable"><a href="/section2.php">Section 2</a></div> 
<div id="button3" class="repeatable"><a href="/section3.php">Section 3</a></div> 
</div> 
<!-- end menu area --> 

各ページにすべてのボタンを1つずつ与えたくありません。私は、jQuery、PHP、JavaScriptなどを使用して、すべてのボタンを1つずつ操作せずに自分のクラスにすることができるようにするために必要なものをすべて使用します。ウェブサイト用にアクティブなボタンが強調表示されています

また、ここではナビゲーションバーを使用していません。divは使用しています。私が見つけたすべての解決策はナビゲーションバーを使用しており、divとハイパーリンクだけを使用している場合は動作させることができません。

現在のアクティブなページと一致するボタンを強調表示したり、色付けしたりしたいですか?

$(document).ready(function(){ 
    $('#menu div.repeatable a').each(function(){ 
     if(document.URL.indexOf($(this).attr('href')) !== -1){ 
      $(this).addClass('selected');    
     } 
    }); 
}); 

必要に応じて、あなたのCSSやスタイル、それをする.selectedを追加します。loops

+1

なぜあなたのリンクのリストがlist markuの代わりにdivsでマークアップされていますか?あなたは質問がありましたか? – Quentin

+0

はい、質問はありましたか? –

+0

はい申し訳ありませんが、ユーザーが使用しているページに関連するアクティブなボタンを強調表示したいと思います。 私はボタンをやっておらず、残念ながら書かれている方法を制御していませんでした。 –

答えて

0
<div id="menu" class="editable"> 
<?php 
$i = 0; 

while($i < 10) 
{ 
echo '<div id="button'.$i.'" class="repeatable"><a href="/section'.$i.'.php">Section '.$i.'</a></div>'; 
$i++; 
} 
?> 
</div> 

はjQueryのを使用して、このような何かを試してみてください。

これはメニュー項目をループし、href属性のURLを現在のアクティブなページのURLと比較します。

また#menudivsを使用することができます。

$(document).ready(function(){ 
    $('#menu div.repeatable').each(function(){ 
     if(document.URL.indexOf($(this).find('a').attr('href')) !== -1){ 
      $(this).addClass('selected');    
     } 
    }); 
}); 
+0

それは私のメニューの私の最初のdivのすぐ下にそれを加えますか? –

+0

これは、独自のIDとセクションを持つ10個のボタンを作成するループです –

+0

ボタンがこのように記述される主な理由は、ユーザーがこれらのボタンを複製して独自のCMSを作成できるためです。私はこれらのボタンが書かれている方法を変えたくありません。ボタンを自分のクラスに与えることなく、そのボタンのページに誰かがいるときにハイライトしたいだけです。これにより、CMS上の編集者は、各ボタンにクラスを与えることができなくなります(高齢者と協力して、ソリューションを簡単にする必要があります)。 –

1

上に読む

+0

これは素晴らしい解決策のようです。残念ながら私はそれを働かせることはできませんが、私はなぜそれがわかりません。スクリプトをに入れました。 .selectedクラスをCSSに追加しましたが、それでも動作しません。 #menu .selected ...まだ何も試していない!! –

+0

このスクリプトの上のページにjQueryを含めましたか?確認できるようにフルページのHTMLを追加することができますか?そのコードはうまくいくはずです。 – SeanNieuwoudt

+0

編集のおかげで、それはクールだ。私はフルページのhtmlを追加することができます、どこに行うのが最善でしょうか?私はjqueryを含めて検索しましたが、正しい行を見つけることができません。あなたはそれを知っているどんなチャンスですか?私のウェブサイトをjqueryで動作させるために追加する必要のあるjqueryエンジンですか? –

0

は、jQueryのセレクタと.each関数を使用します。私はここで似たようなことをしていますjQuery.attr('src') replace not working in FF

同様のスクリプトを使用して、すべてを検索し、hrefの値を確認して、それに合ったらdivで何かを行うことができます...のようなスタイル属性をインラインで追加すると、欲しい/必要がある。

関連する問題