初心者が学ぼうとすると、メニューの親にカーソルを合わせると、最初の子だけが表示され、残りの子は表示されないという問題が発生しました。cssを気にしないでください。感謝します。
サンプルコードへのリンクはこちら
ありがとう。
またはこれを使用してください:
$('#multimenu a').hover(function(){
$(this).next().show();
},function(){
$(this).next().hide();
});
実例: http: //jsfiddle.net/s6EXf/5/
HTMLを次のように変更しました。
<ul id="multimenu">
<li><a href="#">Example 1</a><div class="submenu"></div></li>
<li><a href="#">Example 2</a><div class="submenu"></div></li>
<li><a href="#">Example 3</a><div class="submenu"></div></li>
<li><a href="#">Example 4</a><div class="submenu"></div></li>
<li><a href="#">Example 5</a><div class="submenu"></div></li>
</ul>
css疑似クラスで実行できるため、最初の子クラスを削除しました:first-child
同じIDを持つ複数のコントロールを持つことはできず、代わりに名前を使用できます。だから私は変更しました
$('li[name=multimenu]').hover(function() {
$(this).children('.submenu').show();
}, function() {
$(this).children('.submenu').hide();
});
あなたはすべてのliのIDとしてマルチメニューを使用しています。IDは1ページで使用できます。IDは一意です。
すべてのIDをクラスに変更しました。その動作は以下の例を参照してください。
これを試して
HTML:
<ul>
<li><a href="#">Example 1</a>
<div class="submenu">
<div>aaaa<div>
<div>bbbb<div>
<div>cccc<div>
</div>
</li>
<li><a href="#">Example 2</a>
<div class="submenu">
<div>1111<div>
<div>2222<div>
<div>3333<div>
</div>
</li>
<li><a href="#">Example 3</a>
<div class="submenu">
<div>xxxx<div>
<div>yyyy<div>
<div>zzzz<div>
</div>
</li>
<li><a href="#">Example 4</a>
<div class="submenu">
<div>4444<div>
<div>5555<div>
<div>6666<div>
</div>
</li>
</ul>
</ p>
CSS:
ul li {
float:left;
margin-left:1em;
}
.submenu {
position:absolute;
display:none;
width:105px;
height:150px;
-webkit-border-radius: 0px 0px 10px 10px;
border-radius: 0px 0px 10px 10px;
background:#ccc;
z-index:123;
}
Jquery:
$('li').hover(function() {
$(this).children('.submenu').show();
}, function() {
$(this).children('.submenu').hide();
});
こちらのデモをご覧ください:http:
//jsfiddle.net/naresh3591/4H5BE/4/
使用する
$('ul #multimenu').hover(function(){
});
また、すべてのli要素に同じIDを使用しているので、そうしないでください。idは一意であることが意図されています。
問題は、IDが一意である必要があり、jsが最初のIDのみを取得することです。id="multimenu"をclass="multimenu"に変更すると、jsコードは次のようになります。
$('.multimenu').hover(function(){
$(this).children('.submenu').show();
},function(){
$(this).children('.submenu').hide();
});