jQueryを使用して、親hrefがクリックされたときに、順序なしリストでdivを垂直方向にスライドさせる単純な水平メニューがあります。 2つ以上のタブがある場合はうまく動作しますが、2より大きい場合はうまく動作しません.2以上の場合、SlideToggleで何かが起こり、1回ではなく複数回トグルします。私はJQueryには比較的新しいので、これで困ってしまった。どんな助けでも大歓迎です!ここでJQueryスライド・ダウン・メニューの質問
はjQueryの
<script type="text/javascript">
$(function(){
$(document).ready(function() {
$('a.menu_button').click(function (e) {
e.preventDefault();
var $this = $(this);
var ulId = $this.attr("href");
$this.parent().find("ul").not(ulId).slideUp("medium", function() {
$ul = $this.parent().find("ul" + ulId)
$ul.slideToggle('medium');
});
});
});
});
</script>
そして、ここではHTMLです。私はそれが関連しているとは思わなかったので、CSSを含めなかったが、もし助けてくれれば投稿することができる。
<div id="menus">
<a href="#menu1" class="menu_button" id="home"></a>
<a href="#menu2" class="menu_button" id="aboutus"></a>
<a href="#menu3" class="menu_button" id="admissions"></a>
<ul class="the_menu" id="menu1">
<li><a href="#">A Website #3</a></li>
<li><a href="#">A Website #4</a></li>
<li><a href="#">A Link #1</a></li>
<li><a href="#">A Link #2</a></li>
<li><a href="#">A Website #3</a></li>
<li><a href="#">A Website #4</a></li>
<li><a href="#">A Link #3</a></li>
<li><a href="#">A Link #4</a></li>
</ul>
<ul class="the_menu" id="menu2">
<li><a href="#">A Website #1</a></li>
<li><a href="#">A Website #2</a></li>
<li><a href="#">A Link #1</a></li>
<li><a href="#">A Link #2</a></li>
<li><a href="#">A Website #3</a></li>
<li><a href="#">A Website #4</a></li>
<li><a href="#">A Link #3</a></li>
<li><a href="#">A Link #4</a></li>
</ul>
<ul class="the_menu" id="menu3">
<li><a href="#">A Website #1</a></li>
<li><a href="#">A Website #2</a></li>
<li><a href="#">A Link #1</a></li>
<li><a href="#">A Link #2</a></li>
<li><a href="#">A Website #3</a></li>
<li><a href="#">A Website #4</a></li>
<li><a href="#">A Link #3</a></li>
<li><a href="#">A Link #4</a></li>
</ul>
<div class="clear"></div>
</div>
あなたは第三ULおよびアンカータグを取る場合は正常に動作します、しかし、すぐに第三があったようで追加され、それは1あまりにも多くの時間を切り替えます。ここで
は、CSSが
ul, li {
margin:0;
padding:0;
list-style:none;
}
div#menus {
position: relative;
background-color: #302f2f;
}
a.menu_button {
display: inline-block;
margin-right: -4px;
margin-bottom: 0px;
}
.menu_button img {
border:1px solid #1c1c1c;
display: block;
}
.the_menu {
display:none;
width:1000px;
}
.the_menu li {
}
.the_menu li a {
color:#FFFFFF;
text-decoration:none;
padding:10px;
display:block;
float:left;
}
.the_menu li a:hover {
padding:10px;
font-weight:bold;
color: #F00880;
}
.clear {
clear: both;
}
#home {
background: url(button_sprite.png);
background-position: 0px 0px;
width:125px;
height:30px;
float:left;
}
#aboutus {
background: url(button_sprite.png);
background-position: -126px 0px;
width:125px;
height:30px;
float:left;
}
#admissions {
background: url(button_sprite.png);
background-position: -252px 0px;
width:125px;
height:30px;
float:left;
}
EDITです:1がダウンしている間、別のHREFをクリックすると、私は、新しいものを下にスライドして、アクティブな1が最初に上にスライドします。
をこれは、それが呼ばれるn回取得の問題を修正し、それは一度だけ切り替えます。しかし、前に、すでに別のhrefがクリックされていたときに、そのhrefがクリックされた場合は、それを下にスライドさせ、次にクリックされたhrefをスライドさせます。今度は、すでに停止しているものの上に新しいものをスライドさせます。 – Alex
うーん、それは良くありません。あなたはCSSを投稿することは可能でしょうか? – ipr101
オリジナルを編集して数分前に投稿しました。それは私のために現れて、それがあなたのために現れていないかどうか私に知らせてください。メニューはイメージなしではきれいに見えませんが、基本的な機能を提供するはずです。 – Alex