2016-06-20 5 views
1

私はonClickハンドラを持つカスタムウィジェットを持っています。問題は、ユーザーが要素をダブルクリックすると、重複した呼び出しも2回目のクリックに対してトリガーされることです。 onDoubleClickハンドラを使用して回避するために、ダブルクリックするとこのハンドラに入りますが、onClickの実行後にのみ実行されます。だから、重複した電話が起こっている。GWT - 同じ要素をダブルクリックとシングルクリックの両方で処理する

は、二重に重複した要求を避けるためにJavascriptをタイマーを持っていることの解決策を見たことがあります。同じことをGWTにすることは可能ですか?

また、エレメントのダブルクリックに対する重複要求を避けるための他の方法がありますか?GWT

答えて

0

How to prevent DoubleSubmit in a GWT application?

上記のリンクで与えられた答えはボタンのためにダブルクリックを扱うに役立つだろう。

しかし、そのカスタムウィジェット.setEnabled(偽)が動作しない場合、私たちは許すとにそれを設定し、その場合は、静的ブール変数、条件チェックを持つことができます一度クリックすると、成功時にに戻ります。ダブルクリックの場合、ブールの値はとなります。となり、if条件が失敗します。

1

ウィジェットがそれを実行している限り、ウィジェットを 'ローテーションスピナーアニメーションイメージ'に置き換えます。一旦準備ができたら、ウィジェットに戻してください。

画像にクリックハンドラーが含まれていないため、2回目のクリックは受信されません。

1

現在の時間をミリ秒単位で表示してダブルクリックを防止し、このメソッドの最後の処理でチェックします。 1回目と2回目のクリックの間隔が1秒未満の場合は、2回目のクリックが防止されます。

long lastClick = 0; 
if (lastClick < System.currentTimeMillis() - 1000) 
{ 
    // do logic 
} 
lastClick = System.currentTimeMillis(); 
関連する問題