这是我在堆栈上的第一个问题,我有这个html / jQuery:
$("#mdrop1").toggle(function() {
$("#mt1").slideDown();
$("#mt2").slideUp();
}, function() {
$("#mt1").slideUp()
});
$("#mdrop2").toggle(function() {
$("#mt2").slideDown();
$("#mt1").slideUp();
}, function() {
$("#mt2").slideUp()
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#" id="mdrop2">dropdown 2</a>
<div class="dropdown-laterale" id="mt2">
<a href="menu1.html">menu 1</a>
<a href="menu2.html">menu 2</a>
<a href="menu3.html">menu 3</a>
</div>
<hr>
<a href="#" id="mdrop1">dropdown 1</a>
<div class="dropdown-laterale" id="mt1">
<a href="othermenu1.html">other menu 1</a>
<a href="othermenu2.html">other menu 2</a>
<a href="othermenu3.html">other menu 3</a>
</div>
<hr>
我第一次点击#mdrop1
时#mt2
已打开,$mt2
幻灯片正确,并且当我点击#mdrop2
#mt1
已经打开时,行为相同但是......如果我想重复我对这两个切换的动作,他们只能双击...为什么?
我希望我的解释清楚:)
答案 0 :(得分:0)
实际上你的解释并不是很清楚,如果你想在点击时切换菜单,我认为你应该使用SendChannel
。在此处查看有关点击操作的更多信息
https://api.jquery.com/click/
此外,你的切换代码不正确,你不能传递2个回调函数,jquery不支持,请参考http://api.jquery.com/toggle/
答案 1 :(得分:0)
我用这个解决方案解决了我的问题:
$('#mdrop1').click(function(){
if ( $('#mt1').css('display') == 'none' ){
$("#mt1").slideDown();
if ( $('#mt2').css('display') == 'block' )
{
$("#mt2").slideUp();
}
}
else
{
$("#mt1").slideUp();
}
});
$('#mdrop2').click(function(){
if ( $('#mt2').css('display') == 'none' ){
$("#mt2").slideDown();
if ( $('#mt1').css('display') == 'block' )
{
$("#mt1").slideUp();
}
}
else
{
$("#mt2").slideUp();
}
});