Javascript 如何创建一个html上下文菜单,其中菜单项根据运行时值进行更改?

Javascript 如何创建一个html上下文菜单,其中菜单项根据运行时值进行更改?,javascript,jquery,css,contextmenu,Javascript,Jquery,Css,Contextmenu,我无法回答这个问题,因为它被搁置了。但我在下面添加了一个更新 好吧,这可能是一个非常愚蠢的问题——但我的头现在疼得太厉害了! 我正在尝试创建一个上下文菜单,它会根据特定条件进行更改 例如,如果小时数小于8,则显示包含条目的菜单: 今天打电话 今天参观 电子邮件 如果小时数介于8和4之间,则条目可能为: 现在打电话 立即发送电子邮件 如果小时在4到12之间,则另一组菜单项。 我尝试了一些在网上找到的例子,但现在我似乎越来越困惑了 好吧,我说这是个愚蠢的问题。我看过各种插件,比如Audero

我无法回答这个问题,因为它被搁置了。但我在下面添加了一个更新

好吧,这可能是一个非常愚蠢的问题——但我的头现在疼得太厉害了! 我正在尝试创建一个上下文菜单,它会根据特定条件进行更改 例如,如果小时数小于8,则显示包含条目的菜单:

  • 今天打电话
  • 今天参观
  • 电子邮件
如果小时数介于8和4之间,则条目可能为:

  • 现在打电话
  • 立即发送电子邮件
如果小时在4到12之间,则另一组菜单项。 我尝试了一些在网上找到的例子,但现在我似乎越来越困惑了

好吧,我说这是个愚蠢的问题。我看过各种插件,比如Audero-Context-Menu@github.com/AurelioDeRosa/Audero-Context-Menu、MB-Menu@pupunzi.open-lab.com/MB-jquery-components/MB--u-Menu/和其他插件。我已经结束了。在浏览了它和其他一些资料之后,我能够进行一个演示,并将其修改为我试图实现的原型。基于demo@hmedialize.github.io/jQuery-contextMenu/demo/dynamic-create.html,我修改了代码,如下所示:

$(function(){
$.contextMenu({
    selector: '.context-menu-one', 
    build: function($trigger, e) {
        // this callback is executed every time the menu is to be shown
        // its results are destroyed every time the menu is hidden
        // e is the original contextmenu event, containing e.pageX and e.pageY (amongst other data)
        return {
            callback: function(key, options) {
                process(key, options)
            },
            items: loadme()
        };
    }
});
});
var count=0;
function process(key, options) {
                    var m = "clicked: " + key;
                    window.console && console.log(m) || alert(m); 
}
function loadme() {
    return {
                    "edit": {name: "Edit "+ (++count)},
                    "sep1": "---------",
                    "quit": {name: "Quit", icon: "quit"}
                }
};
基本上,每次打开关联菜单时,菜单中“编辑”链接的计数都会增加


另外,我会使用正确的链接,但由于我的声誉,我只能使用两个

请注意
构建
参数的注释:

    // this callback is executed every time the menu is to be shown
然后返回一个包含
loadme
函数的对象,该函数每次调用时都会递增
count
(这就是
++count
的作用)。结果是,每次菜单显示时,
loadme
都会运行,
count
都会增加。如果您不希望增量发生,您可能希望去掉
++

但我认为这只是一个例子,与你真正想做的事情无关。几乎可以肯定的是,您希望让
loadme
而不是决定
(new Date()).getHours()
属于哪个范围,并在此基础上返回包含相应菜单项的对象