0

このようなhtmlマークアップがあります

<li id="fSearch" class="alwsShown">
            <div class="dark overflowHidden" id="fSearchBg">
                            <input type="text" id="filter" name="" style="width:140px" tabindex="1" class="fullWidth opt resetBorderNShd resetShd" value="" autocomplete="off" title="Search" value=""/>
             <span id="stopSearch" class="imgSprite stopSearch displayNone poAbs"></span>
            </div>

          </li>

使用されたjquery

var test = function() {
    var self = this,
    $filter = $("#filter"),
    $fSearchBg = $("#fSearchBg"),
    $stopSearch = $(".stopSearch");
    // Blur
    $filter.blur(function() {
      $filteranimate({
        width: "140px"
      }, 200, function() {
        $fSearchBg.removeClass("light").addClass("dark");
        $stopSearch.hide();
      });
    });
    $stopSearch.click(function(event){
      $filter.val("");
      $(this).hide('fast');
      event.preventDefault()
      event.stopPropagation();

    });
    // Focus
    $filter.focus(function() {
      // animate
      $filter.animate({
        width: "285px"
      }, 200);
      $fSearchBg.removeClass("dark").addClass("light");
    });

  });

私の場合、入力ボックスの幅は 140px で、ユーザーが入力ボックスにフォーカスすると 284px にアニメーション化され、どこかをクリックするとぼかしイベントが処理されます。今私の要件は、十字アイコンをクリックしたときに入力ボックス内に十字アイコンがあることです。いくつかのタスクを実行する必要がありますが、十字アイコンをクリックしたときにぼかしを発生させたくありませんでした。既にぼかしイベントがある場合のクリックの処理方法を教えてください。

4

1 に答える 1

1

アイコンのクリックを検出できる場合は、次のようなグローバル javascript フラグを設定します。

iconclicked = true;

この iconclicked を blur メソッドで使用し、true の場合は戻ります

于 2012-04-17T07:56:07.420 に答える