1

我有一个搜索,焦点变大,模糊变小。我的问题是,即使您单击建议区域,它也会导致动画运行。有没有办法做到这一点,如果您在建议区域单击此代码不会执行。

$('.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>
4

1 回答 1

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 事件之前触发。

祝你好运。

于 2013-01-08T03:39:18.500 回答