2013-03-15 195 views
0

我想打开下拉菜单,当我点击一个按钮。jQuery:显示/隐藏下拉菜单点击按钮

我已经尝试了很多代码,但我得到的最接近的是下面的代码:

<input id="hide" value="+" type="button" /> 

$(document).ready(function() { 

    $('#hide').click(
     function() { 
      //show its submenu 
      $('rightMenu', this).stop().slideDown(500); 

     }, 
     function() { 
      //hide its submenu 
      $('rightMenu', this).stop().slideUp(500);   
     } 
    ); 

我想显示/隐藏菜单为<div id="rightMenu">

+1

哪些因素是rightMenu?你需要指定什么元素。例如:'$('。rightMenu',this)'是类'rightMenu'的元素。可以使用这个下拉菜单:'$('select',this)'。 – sourRaspberri 2013-03-15 11:23:37

+2

...和'click'不接受2个功能。改用'slideToggle'。 – undefined 2013-03-15 11:24:15

回答

0

可你的slideToggle

尝试
$('#hide').click(
    function() { 
    //show its submenu 
    $('.rightMenu').slideToggle(500); 

} 
); 
+1

谢谢,但没有任何反应。 – hobok 2013-03-15 11:29:18

1

$('rightMenu', this)相同$(this).find("rightMenu")

因此这将搜索与嵌套您hide input元素内的rightMenu标签元素。

这显然是不正确的,因为您没有嵌套在您的input元素中的任何元素,并且您几乎肯定不会有任何rightMenu元素,因为这是无效类型。

Menu is in right rightMenu。在这个回答您的评论

看,你的选择实际上应该是:

$("#rightMenu") 

此外click()无法接受2个参数。改为将此功能更改为1功能,并使用slideToggle()在向上和向下之间切换。

因此你的代码应该是:

$(document).ready(function() { 

$('#hide').click(
    function() { 
     //show its submenu 
     $("#rightMenu").stop().slideToggle(500);  
    } 
); 

}); 

现场演示:http://jsfiddle.net/7aCFk/

+0

确定我已经编辑但仍: <输入的ID = “隐藏” 值= “+” 型= “按钮”/>

My menu
$(文件)。就绪(函数(){ $( '#hide')点击( 函数(){// 显示其子菜单 $( '#rightMenu',这一点).stop()了slideDown(500); }, 功能(){ //隐藏其子菜单 $('#rightMenu',this).stop()。slideUp(500); } ); – hobok 2013-03-15 11:28:15

+0

@hobok查看我的编辑 - 我没有意识到rightMenu是一个ID(因为你从来没有提到过:P) – Curt 2013-03-15 11:30:47

+0

对不起,它很好,谢谢! – hobok 2013-03-15 11:31:42

相关问题