2013-12-18 86 views
0

我有一个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"); 
      }; 
     }); 

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

有没有办法让模糊会做它应该做的,除非点击按钮?还是有更好的方式去做我一直在做的事情?我尝试将点击更改为mousedowns(这不起作用,因为模糊和mousedown同时行为)和mouseup(与默认点击相同),但它没有帮助。

回答

0

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

+0

我不知道我明白你在推断什么。所有触发点击和模糊,而不是鼠标位置(没有悬停动作)。 –

+0

我试过把模糊功能放在mouseout里面的按钮,但仍然没有运气:( –