如何通过条件动态更改上下文菜单中的名称

时间:2015-10-12 11:12:20

标签: jquery contextmenu

我正在为jQuery使用这个contextmenu插件:

  

http://swisnl.github.io/jQuery-contextMenu/demo/trigger-left-click.html

我试图通过简单的条件动态更改菜单项的名称。不幸的是,无法动态更改菜单项的名称,或者我不知道如何更改...

我试过这种方式:

var en = CultureInfo.GetCultureInfo("en-US");
// ...
((double)row[item.columnName]).ToString(en);

但它不起作用。 然后我用匿名函数尝试了它:

   items: {
           "item": {name: (x > 10) ? 'name1' : 'name2', disabled: false},
           "sep1": "----------------",
           ....
   }

但是效果不好...... 现在我没有其他线索,所以我请你帮忙。 你有什么有用的建议吗? 任何帮助表示赞赏。

提前致谢。

2 个答案:

答案 0 :(得分:4)

我认为你应该使用构建选项。这使得可以在运行时构建菜单,因此它可以在显示菜单之前评估表达式。

http://swisnl.github.io/jQuery-contextMenu/docs.html#build

var clust= new MarkerClusterer(map, markers, mOptions);

});

答案 1 :(得分:1)

名称将在开头定义,而不是每次点击。如果你想每次都这样做重新定义项目名称:

var x = 0;
$(function() {
  $.contextMenu({
    selector: '.context-menu-one', 
    callback: function(key, options) {
      var m = "clicked: " + key;
    },
    items: {
      "edit": {name: "Edit", icon: "edit"},
      "cut": {name: "Cut", icon: "cut"},
      copy: {name: "Copy", icon: "copy"},
      "paste": {name: "Paste", icon: "paste"},
      "delete": {name: "Delete", icon: "delete"},
      "sep1": "---------",
      "quit": {name: "Quit", icon: function(){
        return 'icon icon-quit';
      }}
    }
  });

  $('.context-menu-one').on('contextmenu', function(e){
    $('.icon-edit span').text('x: ' + x);
    x++;
  });    
});
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
<script src="http://swisnl.github.io/jQuery-contextMenu/dist/jquery.contextMenu.min.js"></script>
  <link rel="stylesheet" href="http://swisnl.github.io/jQuery-contextMenu/dist/jquery.contextMenu.min.css">
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
<span class="context-menu-one btn btn-neutral">right click me</span>
</body>
</html>