Jquery On Blur有时候

时间:2013-01-07 23:27:44

标签: javascript jquery

我有一个搜索,焦点越来越大,模糊变得越来越小。我的问题是,即使你点击建议区域,它导致动画运行。有没有办法使它成为如果您在建议区域中单击此代码不执行。

$('.search').blur(function(e) {
    if ( !clickedInSuggest ) {
        $(this).animate({ width : '50px' }, 150);
    }
});

HTML:

<li class="search">
    <form class="searchContainer" action="<?php echo Uri::create('search') ?>" method="get">
        <input autocomplete="off" name="name" placeholder="Search" tabindex="1" type="text" value="" />
        <button type="submit" class="submit"></button>
    </form>
    <div class="suggestions">
        <ul>
            <li></li>
        </ul>
    </div>
</li>

1 个答案:

答案 0 :(得分:1)

......等等......我刚刚在不同情况下解决了这个问题,现在我记得:

$(function(){

   var flag=true;

   $('.suggestions').mousedown(function(){
       flag=false;
   })
   $('.suggestions').mouseup(function(){
      flag=true;
   })

   $('.search').blur(function(e){
       if(flag==false){
           e.preventDefault();
       }
      $('....').animate({...})..etc

   })
})

为什么这样做是因为mousedown事件在blur事件之前触发,而blur事件在click事件之前触发。

祝你好运。