Lak*_*ler 5 javascript events gwt listbox dom-events
我正在实现一个ListBox,我希望能够在用户在ListBox中进行选择时提醒用户.有没有办法响应用户单击列表框中的项目,并在"changeEvent"发生之前响应选择,这样我可以防止changeEvent被触发.我试过用
Event.addNativePreviewHandler(new NativePreviewHandler() {
@Override
public void onPreviewNativeEvent(NativePreviewEvent event) {
System.out.println("EVENT: " + event.getTypeInt());
}
});
Run Code Online (Sandbox Code Playgroud)
但是这永远不会响应单击ListBox中的特定元素,它只会在您关注ListBox时响应最初单击ListBox.我希望能够做到这样的事情:
Event.addNativePreviewHandler(new NativePreviewHandler() {
@Override
public void onPreviewNativeEvent(NativePreviewEvent event) {
if(event is changeEvent && event source is listBox) {
if(do some check here)
event.stopPropagation();
}
}
});
Run Code Online (Sandbox Code Playgroud)
任何建议将不胜感激,谢谢!
谢谢各位的意见。我最终所做的是在列表框获得焦点时保存选择的状态。保存此索引并在发生更改事件时切换它,仅在允许的情况下将其更改为下一个选择。
@UiHandler("listBox")
public void onListBoxFocus(FocusEvent event) {
this.saveListBoxSelection = listBox.getSelectedIndex();
}
@UiHandler("listBox")
public void onChange(ChangeEvent event) {
int newSelection = listBoxCompliant.getSelectedIndex();
listBox.setSelectedIndex(this.saveListBoxSelection);
if(proceed with change)
listBox.setSelectedIndex(newSelection);
else
//cancel event
Run Code Online (Sandbox Code Playgroud)
这是使用 uibinder 完成的,但也可以通过简单地将此事件直接添加到 listBox 来完成。再次感谢您的评论!
| 归档时间: |
|
| 查看次数: |
4026 次 |
| 最近记录: |