3

こんにちは、素晴らしい方々です!

今回の問題は、blur ステートメントで mouseClick が発生したかどうかをテストすることです。

すべての入力フィールドが BLUR で検証されるグローバル ソリューションがあります。このイベント内で、特定の要素 (つまり、helpBubble) がクリックされたかどうかをテストする必要があります。クリックされた場合は、検証を実行したくありませんが、特定の要素がクリックされていない場合は、検証が必要です。発生する。

どんな助けでも大歓迎です!!

4

1 に答える 1

6

blur前にフォーカスされた要素のclickイベントは、新しくフォーカスされた要素のイベントの前に発生します。そのため、タイムアウトを追加しない限り、移動先に基づいて onblur の検証を防ぐことはできません。例えば:

var validationTimer;
$('#myform input').blur(function(){
  var blurred = $(this);
  validationTimer = setTimeout(function(){
    validationTimer = null;
    // Perform Validation on 'blurred'.
  },100);
});

$('.helpbubble').click(function(){
  if (validationTimer){
    clearTimeout(validationTimer);
    validationTimer = null;
  }
});

これは、検証を実行する前にぼかしの後 100 ミリ秒待機しますが、その時間枠内にクリックが発生した場合 (ほぼ即時に発生します)、クリックが発生する前にキャンセルされます。

編集:これが実際の例です:http://jsfiddle.net/9SzDP/

于 2010-12-23T15:47:03.793 に答える