单击jQuery中的事件并单击鼠标右键

单击鼠标右键时是否单击触发器? 我想用完整的日历实现右键菜单类型,但它只有dayClick事件,我认为只有在单击鼠标左键时才会触发。 我在想类似的东西

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

但单击鼠标右键时不会触发dayClick ….还有其他想法吗?

尝试将mousedown绑定到eventRender事件中的每个eventRender事件:

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

您可以禁用页面上的右键单击,并使其仅对以下事件起作用:

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

演示: http : //jsfiddle.net/IrvinDominin/3bukS/

你的答案是否,当点击鼠标右键时点击不会触发,但你可以尝试mousedown事件,检查出来:

 jQuery(document.body).on("mousedown", function(event){ if(event.button==2){ //do what you want } }); 

我已将所需的代码上传到GitHub存储库,其中包含完整的文档和实例。 可能对寻找“正常工作”的固定解决方案的人有用: https : //github.com/mherrmann/fullcalendar-rightclick

在我的情况下,我首先禁用右键单击上下文菜单:

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

然后在渲染事件上我添加:

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

ShowMenu是我自己的菜单Div带选项,在同一光标位置……

这是我处理完整日历的右键单击事件的解决方案。 dayMousedown函数如下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') }); } } 

我实现了dayRightClickListener函数来处理我的需求。