我正在做一个菜单,当我点击一个锚<a>时,它应该会滑动下来,当我点击页面的<body>时,它应该会滑动起来( <a>标签包含在正文中)。我目前使用的是jQuery。
问题是,在第一次点击两次之后(第一次点击标签结果:菜单出现;第二次点击<body>),菜单消失了,但当我再次点击<a>标签时,菜单同时向下滑动和向上滑动?
代码如下:
$(function() {
$('.sch_option a').click(function() {
$('.sch_option .sch_more_option_extend').slideDown(150, function(){
$('body').click(function() {
$('.sch_option .sch_more_option_extend').slideUp(100);
});
});
});
});发布于 2011-12-01 06:22:26
当您单击a时,您需要停止单击事件的传播。
$('.sch_option a').click(function(e) {
e.stopPropagation();
$('.sch_option .sch_more_option_extend').slideDown(150);
});
$('body').click(function(){
$('.sch_option .sch_more_option_extend').slideUp(100);
});发布于 2011-12-01 06:21:35
您一次又一次地绑定到body相同的函数。先试着解绑;
$('body').unbind('click').click(function(){
$('.sch_option .sch_more_option_extend').slideUp(100);
}); 发布于 2011-12-01 06:22:00
你不能在这里真正使用$('body').,因为你的菜单已经是body的子菜单了,你能做的就是跟踪点击的offset,然后隐藏菜单。
https://stackoverflow.com/questions/8333747
复制相似问题