Javascript 在用户打开列表框时将处理程序添加到列表框?

Javascript 在用户打开列表框时将处理程序添加到列表框?,javascript,events,gwt,listbox,dom-events,Javascript,Events,Gwt,Listbox,Dom Events,当用户只是单击列表框,但实际上没有选择任何内容时,如何向添加处理程序?据我所知,当用户在下拉列表中选择一个项目时,onclick-on会触发,而不是当用户实际单击该项目以查看选项时 (如果您知道如何在GWT中实现这一点,而不仅仅是在原始javascript中实现这一点,则可以获得额外的积分) 谢谢 嗯,你可以在第一次点击时使用它,也可以在它聚焦时使用它 ListBox l; l.addFocusHandler(new FocusHandler() { @Over

当用户只是单击列表框,但实际上没有选择任何内容时,如何向添加处理程序?据我所知,当用户在下拉列表中选择一个项目时,onclick-on会触发,而不是当用户实际单击该项目以查看选项时

(如果您知道如何在GWT中实现这一点,而不仅仅是在原始javascript中实现这一点,则可以获得额外的积分)


谢谢

嗯,你可以在第一次点击时使用它,也可以在它聚焦时使用它

    ListBox l;
    l.addFocusHandler(new FocusHandler() {

        @Override
        public void onFocus(FocusEvent event) {
            // TODO Auto-generated method stub

        }
    });
您可以在单击覆盖列表框的区域时使用

    l.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            //
            System.out.println("you clicked me!");
        }
    });

您可以使用
Event.addEventNativePreviewHandler()
预览“单击”事件,并在事件弹出列表框之前执行
Event.stopPropagation()
(通过选中
EventTarget


在相关说明中,您还可以签出GWT2.0+中的
ValueListBox
,它有一个
valuechangeent->onValueChange()
处理程序(并包装一个列表框)。

ListBox?你是说一个常规的select HTML元素吗?是的(对不起,它在GWT中被称为列表框)