-1

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

好吧,这可能是一个非常愚蠢的问题——但我现在头疼得太厉害了!我正在尝试创建一个根据特定条件更改的上下文菜单。

因此,纯粹例如,如果小时小于 8,则显示一个包含条目的菜单:

  • 今天打电话,
  • 今天访问
  • 电子邮件

如果小时在 8 和 4 之间,则条目可能是:

  • 现在打电话
  • 立即发送电子邮件

如果小时在 4 和 12 之间,则另一组菜单条目。我已经尝试了一些我在网上找到的例子,但我现在似乎变得更加困惑了!

好吧,我说这是一个愚蠢的问题。我看过各种插件,例如 Audero-Context-Menu @ github.com/AurelioDeRosa/Audero-Context-Menu、MB Menu @ pupunzi.open-lab.com/mb-jquery-components/mb-_menu/ 等. 我最终选择了Rodney Rehm 的 jQuery-contextMenu。在查看了它和其他一些资源之后,我能够获取其中一个演示并将其修改为我想要完成的原型。基于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"}
                }
};

基本上,每次您调出上下文菜单时,菜单中“编辑”链接的计数都会增加。

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

4

1 回答 1

0

请注意build参数的注释:

    // this callback is executed every time the menu is to be shown

然后您返回一个包含该函数的对象,该函数在每次调用时loadme都会递增(就是这样做的)。结果是每次菜单显示、运行并增加。如果您不希望发生增量,您会想要摆脱。count++countloadmecount++

但我认为这只是一个例子,与你真正想做的事情无关。您几乎肯定想要的是loadme决定属于哪个范围(new Date()).getHours(),并在此基础上返回一个包含适当菜单条目的对象。

于 2013-10-22T14:49:36.420 回答