(初歩的なミスをしている可能性が高いのでご容赦ください(汗))
近日、長い間手を付けていなかったjQueryを勉強するために
「とあるテキストをホバーすると、その下にボックスが表示される」
という基本的なプログラムを書いてみたのですが、早速壁にぶち当たってしまいました(泣)
それらを複数設置した場合に於いて、同じclassを使用しているため1つのテキストをホバーするだけで全てのボックスが表示(当たり前ですが)されてしまいます。
無論、「個別に指定する」という手があるということは存じておりますが、そのプログラムを設置しなくてはならない回数がかなり多く、個別に書いけばjQueryがとてつもなく膨大になってしまうので、どうにかしてjQueryを1つの共通のものにできないか、と、悩んでおります...。
ちなみに言い忘れていましたが、テキスト、ボックスはどちらもHTMLのdiv要素です。サンプルなどを作成していただけると幸いですが、説明だけでも構いません。
ご回答どうかよろしくお願いいたします。
追記:一応ですがコードをお載せいたします。
jQuery
1$(function () { 2 $(".name").hover( 3 function () { 4 $(".selint").slideDown("fast") 5 }, 6 function () { 7 $(".selint").slideUp("fast") 8 } 9 ); 10});
HTML
1<dl> 2 <dt>Founder</dt> 3 <dd><div class="name">1<div class="selint">text1</div></div></dd> 4</dl> 5 6<dl> 7 <dt>Leader</dt> 8 <dd><div class="name">2<div class="selint">text2</div></div></dd> 9 <dd><div class="name">3<div class="selint">text3</div></div></dd> 10 <dd><div class="name">4<div class="selint">text4</div></div></dd> 11</dl> 12 13<dl> 14 <dt>Member</dt> 15 <dd><div class="name">5<div class="selint">text5/div></div></dd> 16 <dd><div class="name">6<div class="selint">text6</div></div></dd> 17 <!-- 今後増えて行きます。 --> 18</dl>
CSS
1dl { 2 margin-bottom: 50px; 3} 4 5dt { 6 font-size: 30px; 7 width: 150px; 8 margin: auto; 9 border-bottom: 2px solid; 10} 11 12.name { 13 color: #333; 14 font-size: 30px; 15 width: 200px; 16 margin: 10px; 17 display: inline-block; 18 border-bottom: dashed 1px #555; 19} 20 21.selint { 22 font-family: Meiryo; 23 display: none; 24 width: 200px; 25 top: 40px; 26 background-color: #444; 27 padding: 5px; 28 color: #fff; 29 font-size: 15px; 30}
一見関係がなさそうなコードも、原因や修正した方が良い点などがある可能性があるので、一応載せておきました。
回答3件
あなたの回答
tips
プレビュー