我不喜欢在我的应用程序中使用 Button-s,因为它们在视觉上太重了。我想我可以使用具有图像的按钮,但我发现我认为是一个更简单的解决方案,不需要使用图像:只需制作一个 InlineLabel 并将其放入 FocusPanel 中,然后拦截 FocusPanel 上的 onClick() 事件。这也将 InlineLabel 放入选项卡顺序中,这也是我想要的。 (然而,也许这个习语在某种程度上是问题的根源。)
我有一个 TextArea,在它之后的 Tab 键顺序中有一个 FocusPanel/InlineLabel。我希望每当焦点离开 TextArea 时,我都会收到一个事件,这样我就可以隐藏 TextArea 并在其旁边显示一个标签,并将 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 上运行。
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)