2012-10-26 50 views
3

我不知道到底是什麼改變關於下面的代碼,使其在Firefox 15的工作:完整的日曆eventDrop在Firefox射擊eventClick 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

+1

你說過它以前工作得很好。你是否使用完整日曆插件的不同版本? – surfmuggle

+0

fullcalendar插件沒有更改。我已經更新到最新以及jQuery和jQuery UI - 但沒有改變錯誤行爲。 – user1778402

回答

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:屬性,然後不再存在的點擊。

+0

workingurl與網址並不能解決問題。仔細觀察看來eventClick實際上並沒有觸發(因爲警報沒有發生)頁面重定向到/MyCalendar/ActivityAddEdit.aspx - 它如何構建這個url有點神祕../ = MyCalendar和該頁面是ActivityAddEdit.aspx - 但總是有查詢字符串通過其他代碼傳遞。這確實是一個分球器: - \ – user1778402

1

即使爲fullcalendar.js中的所有函數添加了斷點 - 錯誤仍然發生,並且在eventDrop完成後沒有完整的日曆函數被觸發 - 但重新直接發生。

僅在FIREFOX 15!

也更改爲早期版本的jquery - 但沒有區別。

我已經看到了一些關於Firefox 15的最近的帖子和丟棄事件錯誤,但沒有任何具體的適用。

有沒有人有這個問題?

如果不是 - 有沒有辦法只爲Firefox用戶禁用拖拽&?

2

當您的事件中包含'url'屬性時,JSON FullCalendar會將該事件呈現爲<a>鏈接而不是<div>

它看起來像Firefox正在處理的點擊和跟隨URL的<a>的拖放。這導致AJAX請求被打斷,並返回status=0如下記載: https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Using_XMLHttpRequest?redirectlocale=en-US&redirectslug=Using_XMLHttpRequest#XMLHttpRequests_being_stopped

在我的情況(火狐18),這是導致「你是離線請檢查您的網絡!」的警告信息。

將'url'屬性重命名爲'targetUrl'將導致該事件被渲染爲解決該問題的<div>。然後您需要修改您的eventClick處理程序以相應地使用新的屬性。

+0

謝謝!這解決了我的問題!使用FF 18.0.2,fullCalendar 1.5.4和jQuery 1.8.1。 – Arturo

+0

正確 - 這是網址問題 - 通過重命名爲targetUrl(或除url外的任何內容)修正 - 必須在Json數據中更改以及eventClick:在完整日曆初始化 – user1778402