jQuery单击(函数)不工作
我正试图通过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); }); 这里出了什么问题?该函数只使用一个回调函数
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();
});
});