jQuery FullCalendar:右键菜单

5
3个回答

8
我不知道上下文菜单插件,但我认为你可以将其绑定到fullcalendar的eventRender事件上。我遇到了在事件上dblClick的问题。
以下是我的解决方案的一部分:
eventRender: function(event, element) {
    element.bind('dblclick', function() {
    dopbClickFunction(event,element);
    .......

1

我正在解决完全相同的问题。对我来说,做以下两个步骤有效:

1 - 代码

eventRender: function(calEvent,element){
        element.bt({ ajaxPath: 'ajEvents.asp?opt=getExtendedEvent&valore=' +  calEvent.id,  trigger: 'hover', width: 200 });
        //only for tooltip
        element.contextMenu('myMenu',{bindings:{'idVoce': function(t){ alert('right click on ' + calEvent.id) } } })
    } 

我假设您已经定义了myMenu div...

2 - 修改上下文菜单中的zindex,例如从500到2500,从499到2499。如果您的日历在对话框窗口中(就像我一样),这很重要,否则它会被隐藏在可见层下面。


1

我使用了Fullcalendar的加载回调函数:http://arshaw.com/fullcalendar/docs/event_data/loading/

loading: function (bool, view) { 

    if (bool){
        jQuery('#com_jc_msg_saving').fadeIn();
    } else {

        jQuery('#com_jc_msg_saving').fadeOut();

        jQuery.contextMenu({

            selector: '.fc-event',//note the selector this will apply context to all events 
            trigger: 'right',
            callback: function(key, options) {
                //this is the element that was rightclicked
                console.log(options.$trigger.context);

                switch(key)
                {
                case 'edit_event':

                  break;
                case 'del_event':

                  break;
                case 'add_event':

                  break;

                }

            },
            items: {
                'edit_event': {name: 'Edit'},
                'del_event': {name: 'Delete'},
                'add_event': {name: 'Create'},
            }
        });
    }
},

事情是你需要从那个元素中获取事件ID - 我所做的是使用事件JSON数据中的className。只需进行一些字符串替换,你就可以得到你的ID。

'className' => 'jc_event_' . $event->id,


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接