模糊和单击冲突

时间:2013-12-18 19:26:54

标签: jquery click mouseevent blur removeclass

我遇到了jquery的点击问题。当我单击搜索按钮(#mini-panel-quick_menu .panel-col-last)时,搜索栏会从屏幕顶部向下滑动(#block-search-form)。 “open”类使边距为0.默认为-4.5em,css过渡进行滑动。

        $('#mini-panel-quick_menu .panel-col-last.off').click(function() {
            $(this).removeClass('off');
            $( '#block-search-form' ).addClass( "open" );
            $('#edit-search-block-form--2').focus();
            $(this).addClass('on');
        });
        $('#mini-panel-quick_menu .panel-col-last.on').click(function() {
            $(this).removeClass('on');
            $( '#block-search-form' ).removeClass( "open" );
            $('#edit-search-block-form--2').blur();
            $(this).addClass('off');
        });

        $('#edit-search-block-form--2').blur(function(){
            if ($('#mini-panel-quick_menu .panel-col-last').hasClass('on')){
                $('#mini-panel-quick_menu .panel-col-last').removeClass('on');
                $('#mini-panel-quick_menu .panel-col-last').addClass('off');
                $( '#block-search-form' ).removeClass( "open" );
            };
        });

整件事情很好。它会打开,当我模糊输入框时它会关闭。如果我单击搜索按钮,它将按预期打开和关闭。问题是当搜索栏打开时,我在搜索按钮上单击并释放。当mouseup触发点击时,Mousedown会模糊输入。

除非点击按钮,否则有什么方法可以做到它应该做的事情?或者有更好的方法来做我一直在做的事情吗?我已经尝试将点击更改为mousedowns(这不起作用,因为模糊和mousedown同时起作用)和mouseups(与默认点击相同)但它没有帮助。

1 个答案:

答案 0 :(得分:0)

.mouseout()或.mouseleave()函数会有所帮助。