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 に答える