在焦点位于已注册onChange和onBlur处理程序的TextArea上时,Chrome中没有获得焦点任务上的onClick()

时间:2012-02-07 03:21:10

标签: gwt

我不喜欢在我的应用中使用Button-s,因为它们在视觉上太重了。我想我可以使用一个带有图像的Button,但我发现了我认为不需要使用图像的更简单的解决方案:只需创建一个InlineLabel并将其放在FocusPanel中然后拦截FocusPanel上的onClick()事件。这也将InlineLabel放入Tab键顺序,这也是我想要的。 (但也许这个成语在某种程度上是问题的根源。)

我有一个TextArea,然后在Tab键顺序中找到一个FocusPanel / InlineLabel。我希望每当焦点离开TextArea时我得到一个事件,这样我就可以隐藏TextArea并在它旁边显示一个Label并将TextArea文本复制到该标签中。也就是说,当您以任何方式离开文本区域时,您的内容将变为标签。 (是的,我处理了跨站点脚本攻击;谢谢。)如果用户点击选项卡,这样可以正常工作:以上所有情况都会发生,加上焦点转到下一个,即FocusPanel / InlineLabel。

如果用户正在编辑然后只需点击FocusPanel / InlineLabel,那么什么是行不通的。在我将onBlur()和onChange()处理程序添加到TextBox之前,可靠地单击FocusPanel / InlineLabel(1)将焦点放在FP / IL上,(2)在FP / IL上触发ClickEvent。现在TextArea有了新的处理程序,当用户点击FP / IL时,我得到了onChange()(有时是onBlur(),有时候不在TextArea上,另一个问题)但是然后FocusPanel / InlineLabel不再获取点击事件。

有什么想法吗?我想知道这是Chrome中的错误还是我对GWT的理解。看看其他问题,似乎GWT中的事件处理比onClick()更简单似乎会引起各种奇怪。

我使用的是Chrome 16.0.912.77,它说它是最新的;我在OS X 10.6.8上运行。

0 个答案:

没有答案