2

重複の可能性:
Chromeで、onChangeおよびonBlurハンドラーを登録したTextAreaにフォーカスがある場合にFocusPanelでonClick()が取得されない

私のGWTアプリでは、TextAreaにBlurHandlerを登録して、変更を保存し、フォーカスが他の場所に移動した場合に編集モードから表示モードに戻ることができるようにします。これは機能しますが、少なくともdevmodeのChromeでは、フォーカスを移動させたイベントの影響を無効にするようです。たとえば、ユーザーがアンカーをクリックすると、TextBoxはonBlur()を取得し、アンカーはonClick()を取得しません。一方、onBlurを登録する前は、アンカーはonClick()を取得していました。これは非常に信頼できるようです(ここでも、開発モードのChromeで)。event.stopPropagation()またはevent.preventDefault()を呼び出さないように注意しています。onBlurとonClick()を取得する方法はありますか?

4

1 に答える 1

2

同様の問題がありました。ただし、ソースの問題を追跡できませんでした。dev ツールバー / firebug を有効にして、テストするイベント ブレークポイントを設定しました。ぼかしアクションの後にクリック イベントがトリガーされなかったようです。何時間も遊んだ後 (これを試してみようと思った理由はよくわかりません)、onblur アクションを約 300 ミリ秒の遅延でタイマーに落としました。それは私にとってはうまくいくようでした。私のアクションがページとアイテムの可視性をわずかに変更し、魔法使いがページを再レンダリングしたという事実と関係があるかもしれないと思います.シングルスレッドブラウザモデルがもはやオンになっていないクリックイベントを強制終了したと推測できます.右の領域。

      textBox.addBlurHandler(new BlurHandler()
      {
        @Override
        public void onBlur(BlurEvent event)
        {
            Timer delayTimer = new Timer()
            {
              @Override
              public void run()
              {
                 //do stuff
              }
            };
            delayTimer.schedule(300);
         }
    });


           anchor.addClickHandler(....)
于 2012-06-06T21:18:07.283 に答える