HTML5上下文菜单-当菜单项被点击时,访问最初被点击的元素

HTML5 contextmenu - Access originally clicked element when menu item is clicked

本文关键字:访问 元素 菜单项 菜单 HTML5 上下文      更新时间:2023-09-26

我正在最新版本的Firefox中试用HTML5上下文菜单项(目前唯一支持它的浏览器)。当我从上下文菜单中单击菜单项时,如何访问生成菜单时单击的原始元素?

用例将显示项目列表,并且您希望用户对特定项目执行操作。从菜单中单击操作后,您需要一种方法来确定最初单击列表中的哪个元素来生成菜单。

这是一个JSFiddle(使用Firefox进行测试)

只需将其保存在类似this.cte = arguments[0];的位置,然后在稍后的document.getElementById('testitem').cte 中检索

http://jsfiddle.net/GALmp/4/

我也处于同样或非常相似的情况。我有一个上下文菜单,它绑定到表头中的<tr>。当用户单击上下文菜单中的某个项目时,在单击事件处理程序中,我需要确定单击<menuitem>元素时鼠标指针在哪个<th>元素上。

解决方案:document.activeElement正是指我需要的元素。感谢:

  • 这个SO问题
  • 评论7在相关的谷歌铬问题线程

您可以使用独立于浏览器的jquery contextMenu插件。特别是以下示例:http://medialize.github.io/jQuery-contextMenu/demo/on-dom-element.html显示了如何识别触发DOM元素。

this关键字在任何事件中都能正常工作。