gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 13:18:56 25 4
gpt4 key购买 nike

您如何处理“弹出窗口”之外的点击事件,我实际上正在使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com