java - 处理弹出窗口之外的点击事件

标签 java javascript gwt

您如何处理“弹出窗口”之外的点击事件,我实际上正在使用 LinkedIn Hopscotch 包装器进行 GWT。这个想法是当用户单击弹出窗口外部(即外部 .hopscotch-bubble-container )时,弹出窗口应该隐藏。调用GwtTour.endTour(false);最终导致弹出窗口隐藏。这很好,但是,我还需要在单击“dashboardLink”菜单项时进行;这个 $("html").bind("click",...) 也不应该被调用。它叫什么名字,不知道为什么。

代码:

private void bindHandlers(){

    // Handle when click event came from here
    $(".hopscotch-bubble-container").bind("click", new com.google.gwt.query.client.Function() {
        @Override
        public boolean f(com.google.gwt.user.client.Event e) {
            e.stopPropagation();
            return false;
        }
    });
    $("#dashboardLink").bind("click", new com.google.gwt.query.client.Function() {
        @Override
        public boolean f(com.google.gwt.user.client.Event e) {
            e.stopPropagation();
            return false;
        }
    });
    // This event handler closes the GWT Tour
    // when user click outside of it
    $("html").bind("click", new com.google.gwt.query.client.Function() {
        @Override
        public boolean f(com.google.gwt.user.client.Event e) {
            GwtTour.endTour(false);
            return true;
        }
    });
}

最佳答案

检查点击事件的来源,如果它是从预期来源触发的,然后执行所需的操作。

如果菜单项是此点击事件的来源,则不执行任何操作。

看看:

$("html").bind("click", new com.google.gwt.query.client.Function() {
    @Override
    public boolean f(com.google.gwt.user.client.Event e) {
        // you can check it using instanceof operator, object references or Element ID
        // e.getSource() instanceof MenuItem
        // ((Widget) e.getSource()).getElement().getId()
        if (e.getSource() != dashboardLink) {
            GwtTour.endTour(false);
            return true;
        } else {
            return false;
        }
    }
});

关于java - 处理弹出窗口之外的点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22208766/

相关文章:

eclipse - GWT 尝试加载已删除的模块

GWT 无法将背景图像添加到简单面板

java - 从 Firestore 检索嵌套对象并将其放入 Android 中的 RecyclerView 中?

javascript - 使用 git bash 错误设置 app.js

javascript - 这段代码使用 typeof … != "undefined"和clearInterval 做什么?

javascript - 为什么这个 Ajax 请求似乎没有将 JS 变量传递给 PHP?

java - GWT 客户端代码中的 volatile 变量

java - Java 中的空指针异常错误

java - 我可以让我的用户自己命名文本文件吗?

java - 为什么用Java从网页中检索数据时html实体显示错误