Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery单击(函数)不工作_Jquery_Slidedown - Fatal编程技术网

jQuery单击(函数)不工作

jQuery单击(函数)不工作,jquery,slidedown,Jquery,Slidedown,我正试图通过jQuery创建一个带有slideDown()的可点击子菜单。 但是-hover()按预期工作,但是click()没有任何作用 以下是我的jQuery: $("#n_ulist li").click(function(){ $("ul", this).stop().slideDown(500); }, function() { $("ul", this).stop().slideUp(500); }); 这里出了什么问题?该函数只使用一个回调函数

我正试图通过jQuery创建一个带有
slideDown()
的可点击子菜单。 但是-
hover()
按预期工作,但是
click()
没有任何作用

以下是我的jQuery:

$("#n_ulist li").click(function(){
    $("ul", this).stop().slideDown(500);
    },
    function() {
    $("ul", this).stop().slideUp(500);  
});
这里出了什么问题?

该函数只使用一个回调函数作为其参数,因此第一个回调函数总是向下滑动(500)被执行

你可以用

函数将2个回调作为参数,1个用于,另一个用于。有一个版本正在对click event执行相同的操作,但它在jQuery 1.9中被删除


如果您想要一个插件,它将允许您执行相同的操作,请查看此实现。

可以使用。

尝试以下操作:

$("#n_ulist li").click(function(){
    $(this).parent().find('ul').stop().slideUp(500);
    $("ul", this).stop().slideDown(500);
});
或者,如果您的菜单不止一个级别,您可能需要使用

$('#n_ulist').find('ul').stop().slideUp(500);
编辑

根据你的意见

$("#n_ulist li").click(function(){
    $(this).parent().find('ul').stop().slideUp(500);
    $("ul", this).stop().slideToggle(500).click(function(e) {
        e.stopPropagation();
    });
});

不允许使用两个功能-您是否正在考虑,以及单击另一个列表元素时我应该如何滑动下拉列表?-抱歉,我是新手:(您需要在同一个单击函数中添加类似
$(this).parent().find('ul').stop().slideUp(500);
(在您向下滑动之前)-或者如果您的菜单不止一级
$('n#ulist')。find('ul').stop().slideUp(500)
Thank mate,当单击另一个列表元素时,有没有办法切换slideUp?这很好,谢谢;)但是当我再次单击父元素关闭子菜单(
slideUp()
)时,有没有办法实现同样的效果?因此,当我单击同一个元素和另一个父元素时,我想向上滑动子菜单…将
slideDown
更改为
slideToggle
我现在遇到了一个问题-如果我单击子菜单中的任何对象,列表也向上滑动…这不是有意的…有什么想法吗?请参见上面的编辑-当您单击该子对象时,您需要停止事件传播
$("#n_ulist li").click(function(){
    $(this).parent().find('ul').stop().slideUp(500);
    $("ul", this).stop().slideToggle(500).click(function(e) {
        e.stopPropagation();
    });
});