为什么要在同一页面上双击切换请求双击?

时间:2017-09-25 17:04:33

标签: jquery

这是我在堆栈上的第一个问题,我有这个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已经打开时,行为相同但是......如果我想重复我对这两个切换的动作,他们只能双击...为什么? 我希望我的解释清楚:)

2 个答案:

答案 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();
			}
		
		});