擁有以下szenario:模糊文本框(輸入)將文本寫入到我的狀態框(在某些情況下),然後單擊按鈕也會將文本寫入狀態框。GWT:如何將事件放入隊列(相當於Swing invokeLater())?
現在當單擊該按鈕時,如果它被聚焦,它將模糊我的文本框,並且會導致狀態框閃爍,因爲blurHandler會首先寫入其結果,然後是clickHandler。 正如我想讓clickHandler出現的結果是我的想法是讓blurHandler在隊列的末尾放置一個事件,它檢查clickHandler是否已經寫入結果。
在Swing中,我會嘗試SwingUtilities .invokeLater(Runnable)。 GWT中的等價物據說是Scheduler,但那些延遲或最終命令似乎總是在當前事件之後和下一個之前運行。 到目前爲止,我使用Scheduler.scheduleFixedDelay延遲100ms,並希望它在每個瀏覽器中的clickHanlder之後。 查看類似的problem的回答。
我認爲必須有更好的解決方案。 如何真的添加一個事件到隊列的末尾或者由於HTML的限制而不可能?
請注意,您的問題都沒有*做HTML,但是有不同的瀏覽器的JavaScript引擎。調度程序將事件添加到隊列末尾,但瀏覽器可能會在事件完成後生成下一個事件。這種效果是否出現在所有瀏覽器中? – 2012-03-23 08:21:11
是的效果出現在所有瀏覽器 – 2012-03-23 08:46:35
我不確定這是否是最好的解決方案,但在textBox模糊你可能不得不看看焦點是否轉到特定的按鈕。它看起來不太優雅。也許這個鏈接將有所幫助:http://stackoverflow.com/questions/7096120/how-to-determine-where-focus-went – nogridbag 2012-03-23 14:56:32