click event in jQuery and right mouse clicking

前端 未结 4 1720
没有蜡笔的小新
没有蜡笔的小新 2021-02-09 09:25

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 trigg

相关标签:
4条回答
  • 2021-02-09 09:59

    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/

    0 讨论(0)
  • 2021-02-09 09:59

    in my case, i do disable the right click context menu first:

    $("#calendar").on("contextmenu",function (event) {
                  event.preventDefault();
                  });
    

    then on the render event i add this:

      eventRender: function(event, element) {
    ...
     var event2=event;
         element.on('contextmenu', function (event) { showMenu(event2.start,event2,event.pageX,event.pageY); });
    ...
    }
    

    where ShowMenu is my own menu Div with options, in the same cursor position...

    0 讨论(0)
  • 2021-02-09 09:59

    Here is the my solution for handling right click event of full calendar.Edit dayMousedown function as follows on fullcalendar.js

    dayMousedown: function(ev) {
            var view = this.view;
    
            // HACK
            // This will still work even though bindDayHandler doesn't use GlobalEmitter.
            if (GlobalEmitter.get().shouldIgnoreMouse()) {
                return;
            }
            switch (ev.which) {
                case 1:
                    this.dayClickListener.startInteraction(ev);
                    break;
                case 2:
                    alert('Middle Mouse button pressed.');
                    break;
                case 3:
                    // here we can handle right click functionality 
                    this.dayRightClickListener.startInteraction(ev);
    
                    break;
                default:
                    alert('You have a strange Mouse!');
            }
    
            if (view.opt('selectable')) {
                this.daySelectListener.startInteraction(ev, {
                    distance: view.opt('selectMinDistance')
                });
            }
        }
    

    And I implemented dayRightClickListener function to handle my requirement.

    0 讨论(0)
  • Your answer is No, click doesn't trigger when right mouse button is clicked, but you can try mousedown event, check this out:

    jQuery(document.body).on("mousedown", function(event){
        if(event.button==2){
            //do what you want
        }
    });
    
    0 讨论(0)
提交回复
热议问题