【问题标题】:Event fired after clicking the 'delete' of right click context menu of textbox单击文本框右键上下文菜单的“删除”后触发的事件
【发布时间】:2013-11-07 12:28:13
【问题描述】:

当用户使用右键单击上下文菜单的“删除”从文本框中删除数据时,我想执行一些活动。

  • Event.ONMOUSEDOWN 事件不起作用。
  • Javascript 不提供 ondelete 事件

有什么帮助吗?

【问题讨论】:

    标签: java javascript gwt


    【解决方案1】:

    您将无法在上下文菜单中看到“删除”。

    解决方法 1

    当文本框值为“”时,您可以使用 ONCHANGE 并执行您需要执行的操作。

    或者您可以使用 ONKEYPRESS 并检测“删除”笔划,或者检查每个按键的文本框内容。

    为此使用 UI 处理程序。

    @UiHandler("myTextBox")
    protected void onKeyPress(KeyPressEvent e) {
        // do something...
    }
    

    解决方法 2

    如果您想捕捉右键单击事件,请这样做。

    myTextBox.addClickHandler(new ClickHandler() {          
       @Override
       public void onClick(ClickEvent event) {
          if (event.getNativeEvent().getButton() == NativeEvent.BUTTON_RIGHT) {
             // code...
          }            
       }
    });
    

    或者,再次使用 UIHandlers。

    解决方法 3

    如果您仍然不满意并且仍然想从上下文菜单中捕获“删除”单击,那么您只剩下一个选项了。您应该编写自己的上下文菜单。在鼠标右键单击时使用 event.preventDefault() 并显示您自己的“上下文菜单小部件”。 您可以按照此处的说明编写 contextMenuHandler:https://confluence.clazzes.org/pages/viewpage.action?pageId=425996

    【讨论】:

    • 当我们在文本框上单击鼠标右键时,会出现上下文菜单。我想要显示的“删除”项目上的事件。
    • 是的。创建我自己的上下文菜单小部件是剩下的唯一选择。因为当用户右键单击时,我不能假设他只会选择删除。无论如何,谢谢。
    • 好吧,看看这里的上下文菜单实现confluence.clazzes.org/pages/viewpage.action?pageId=425996。不要忘记验证答案:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-15
    • 2017-04-22
    • 1970-01-01
    相关资源
    最近更新 更多