单击事件自动执行

时间:2015-06-09 22:07:01

标签: jquery css drop-down-menu menu submenu

我有这个代码

$(".menu").on('click', function(e) {
    e.preventDefault();
    $(this).addClass("open").children("div").slideDown(200);
});

$(document).on('click', ".menu.open", function(e) {
    e.preventDefault();
    $(this).removeClass("open").children("div").slideUp(200);
});

当我点击.menu时,内部div会向下滑动,但会立即再次向上滑动,只需单击一下即可删除打开的类,以便如何解决此问题并使其正常工作通过点击打开小屏幕的下拉菜单,然后通过另一次点击关闭

2 个答案:

答案 0 :(得分:3)

您在点击后立即分配课程open,然后向下滑动

$(".menu").on('click',function(e){
    $(this).addClass("open").........slideDown(200);
});

导致调用委托的回调。您应该在动画结束时指定课程,并确保没有再次调用open菜单 -

$(".menu").on('click',function(e){
    var tthis = this; //saving the instance to refer in callback
    if ($(tthis).hasClass('open')){ //ignore if already open
         return;
    }
    $(tthis).children("div").slideDown(200, function(){
        $(tthis).addClass("open"); // add class at the end of the animation
    });
});

$(document).on('click',".menu.open",function(e){
    var tthis = this; //saving the instance to refer in callback
    $(tthis).children("div").slideUp(200, function(){
        $(tthis).removeClass("open"); // remove class at the end of the animation
    });
});

答案 1 :(得分:0)

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/blog
RewriteRule ^([0-9]{4}/[0-9]{2}/.*)$ /blog/$1 [L,R]
</IfModule>

# END WordPress

中的