click event in jQuery and right mouse clicking

Apostolos picture Apostolos · Dec 16, 2013 · Viewed 16.4k times · Source

Does click trigger when right mouse button was clicked? I want to implement a right click kind of menu with full calendar, but it only has dayClick event, which I think is triggered only when left mouse button is clicked. I was thinking something like

dayClick: function(date, allDay, jsEvent){
    if (jsEvent.button === 1){
         //show menu
    }else{
        //do something with day
    }
}

but dayClick isn't triggered when right mouse is clicked....Any other ideas?

Answer

Irvin Dominin picture Irvin Dominin · Dec 16, 2013

Try binding mousedown to each FullCalndar event in your eventRender event:

var events_array = [{
    title: 'Test1',
    start: new Date(2013, 11, 20)
}, {
    title: 'Test2',
    start: new Date(2013, 11, 21)
}];

$('#mycalendar:not(".fc-event")').on('contextmenu', function (e) {
    e.preventDefault()
})

$('#mycalendar').fullCalendar({
    events: events_array,
    header: {
        left: 'prevYear,prev,next,nextYear today',
        center: 'title',
        right: 'month,agendaWeek,agendaDay'
    },
    eventRender: function (event, element) {
        element.bind('mousedown', function (e) {
            if (e.which == 3) {
                alert('Right mouse button pressed');
            }
        });
    }
});

You can disable right click on page and let it act only on events using:

$('#mycalendar:not(".fc-event")').on('contextmenu', function(e){ e.preventDefault() })

Demo: http://jsfiddle.net/IrvinDominin/3bukS/