Полный календарь jQuery: контекстное меню

Я хочу использовать jQuery.contextMenu:

http://abeautifulsite.net/blog/2008/09/jquery-context-menu-plugin

Как это работает в jQuery.fullcalendar, когда я щелкаю правой кнопкой мыши по событию?


person Franky    schedule 17.08.2010    source источник


Ответы (3)


я не знаю плагин contextmenu, но я думаю, вы можете привязать его к событию eventRender fullcalendar. У меня проблема с dblClick на мероприятии.

Это часть моего решения:

eventRender: function(event, element) {
    element.bind('dblclick', function() {
    dopbClickFunction(event,element);
    .......
person Sinderella_42    schedule 17.08.2010

Я решаю точно такую ​​же проблему. Для меня это сработало, выполнив 2 следующих шага:

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) } } })
    } 

Я предполагаю, что вы уже определили div myMenu...

2 - изменить zindex в контекстном меню, допустим с 500 на 2500 и с 499 на 2499. Это важно если у вас календарь в диалоговом окне (как у меня), иначе он уходил бы под видимый слой

person 2.Logic    schedule 27.09.2010

Я использовал обратный вызов Fullcalendar Loading: 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'},
            }
        });
    }
},

Дело в том, что вам нужно будет получить идентификатор события из этого элемента — я использовал className в данных json событий. Просто замените немного строки, и вы получите свой идентификатор.

'имя_класса' => 'jc_event_' . $событие->идентификатор,

person Lobos    schedule 17.08.2012