【问题标题】:jQuery Context Menu, single menu with multiple actionsjQuery 上下文菜单,具有多个操作的单个菜单
【发布时间】:2015-06-16 17:56:31
【问题描述】:

我正在使用以下 jQuery 上下文菜单:

http://www.javascripttoolbox.com/lib/contextmenu/index.php

用法很简单,创建一个这样的菜单

var menu1 = [
  {'Option 1':function(menuItem,menu) { alert("You clicked Option 1!"); } },
  $.contextMenu.separator,
  {'Option 2':function(menuItem,menu) { alert("You clicked Option 2!"); } }
];
$(function() {
  $('.cmenu1').contextMenu(menu1,{theme:'vista'});
});

然后你只需用菜单函数名称命名 div 类,所以在这个例子中

我面临的问题是我在表格单元格中有大约 30 个 div 层,我将它们全部归类为 cmenu1 因为我不想复制 30 个不同的菜单功能。本质上,我需要它们都具有相同的菜单选项,但是每个 div 的单击操作需要不同。因此,例如,如果我单击 div1 上的选项 1,它应该能够提醒我 div 编号。

【问题讨论】:

  • 你可以创建一个循环吗?
  • 你只是想在点击菜单项时报告父DIV,这样对吗?
  • putvande,你是什么意思?但不会像拥有 30 个不同的菜单那样循环。我在想是否有办法让我创建一个附加功能并将其链接到 div 中? DevIshOne,是的,但我想报告我点击的 30 个 div 中的哪个。所以例如我有:
    div 1
    div 2
  • 所有 30 个 DIV 的类都有 cmenu1?
  • 是的,所有 30 个 DIV 的类都为 cmenu1,但它们都有不同的 id,所以 class="cmenu1" id="div1" div2 向前

标签: jquery contextmenu right-click


【解决方案1】:
var menu1 = [
  {'Option 1':function(menuItem,menu) { var myDIV = $(this).closest("div.cmenu1").attr("id"); alert("You clicked Option 1 inside div id " + myDIV  + " !"); } },
  $.contextMenu.separator,
  {'Option 2':function(menuItem,menu) { var myDIV = $(this).closest("div.cmenu1").attr("id"); alert("You clicked Option 2 inside div id " + myDIV  + " !"); } }
];
$(function() {
  $('.cmenu1').contextMenu(menu1,{theme:'vista'});
});

【讨论】:

  • 谢谢DevIshOne,好像没用,它没有给我Div的名字,我给每个div一个ID,可以显示这个ID吗?例如
  • 从呈现的页面中,你能做一个View Source 并显示整个元素<div class="cmenu1" id="div1">....</div> 的示例吗??
  • 我要将“选项 2”编辑为其他内容。让我们看看它是否效果更好。此外,请确保将所有单引号(在我的代码中)更改为双引号,因为它们现在显示。这是一个 JSON 的东西,我忘记了。
  • 选项 1 效果很好,如果我添加选项 2 代码,它就会停止并停止加载。
  • 好的.. 让我们将选项 2 更改为类似于选项 1。我现在将进行编辑。
猜你喜欢
相关资源
最近更新 更多
热门标签