我不知道要在Firefox 15中使用以下代码究竟要做些什么改变:
eventDrop: function (event, dayDelta) {
updateCalendarEvent(event.id, dayDelta);
//Firefox 15 fires eventClick for no good reason???
},
eventClick: function (event) {
alert('event click');
if (event.url) {
alert(event.url);
vUrl = '../Activities/' + event.url;
openActivityAddEditDialog(vUrl, 'Edit Activity');
return false;
}
},
我做了一些研究,这绝对是一个BUG。代码在Chrome,Safari,Firefox 14&甚至是IE - 但不是Firefox 15.已经差不多2个月了,看不到任何修复。
有人在这里发布了一个解决这个问题的方法: http://code.google.com/p/fullcalendar/issues/detail?id=1523
另一个类似未答复的完整日历Firefox SO问题: Full Calendar event hyperlinks automatically fire in Firefox
答案 0 :(得分:2)
你也会有一些这样的事件数据:
events: [
{id: '76',title: 'Hot Shave',data: 'Some data',start: new Date(2012,9, 17, 13 , 55),end: new Date(2012,9,17, 13 , 115),allDay: false, url: '<someurl>'}
],
将名为“url:”的事件更改为“workingurl:”,并将您的eventclick代码更新为:
eventClick: function (event) {
alert('event click');
if (event.workingurl) {
alert(event.workingurl);
vUrl = '../Activities/' + event.workingurl;
openActivityAddEditDialog(vUrl, 'Edit Activity');
return false;
}
},
这应该会阻止FF根据url:属性触发点击,该属性不再存在。
答案 1 :(得分:2)
当您在活动中加入“url”属性时,JSON FullCalendar会将该事件呈现为<a>
链接而非<div>
。
看起来Firefox正在考虑拖放<a>
作为点击并跟踪网址。这会导致AJAX请求被中断并返回status=0
,如下所示:
https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Using_XMLHttpRequest?redirectlocale=en-US&redirectslug=Using_XMLHttpRequest#XMLHttpRequests_being_stopped
在我的情况下(Firefox 18),这导致“您正在离线!请检查您的网络”警告消息。
将'url'属性重命名为'targetUrl'会导致事件呈现为<div>
来解决问题。然后,您需要修改eventClick处理程序以相应地使用新属性。
答案 2 :(得分:1)
即使在fullcalendar.js中为所有函数设置了断点之后 - 错误仍然发生,并且在eventDrop完成后没有完整的日历函数被触发 - 但仍然会发生重定向。
仅限FIREFOX 15!
也改为早期版本的jquery - 但没有区别。
我最近看过一些关于Firefox 15和drop事件错误的帖子,但没有任何内容适用于此。
有人在那里遇到这个问题吗?
如果没有 - 有没有办法只禁用拖动&amp;对于Firefox用户来说是什么?