嗨我想使用拖放外部事件for fullcalendar和得到使用yii擴展完全壓延 - 這似乎只是一個包裝。yii efullcalendar小部件和外部事件拖放不工作
不工作的部分(沒有錯誤只是不起作用)是將外部事件拖放到日曆上,並且它停留在那裏。它拖了過去,但它只是回家。
閱讀fullcalendar文檔 - 它看起來像我需要提供一個回調函數'drop'屬性。我一直在使用外部事件的例子,這是整個日曆的一部分。我確實發現這個例子使用了對象名'#calendar',並且yii創建了名字'#yw0',但是在我更新後它仍然不起作用。
我找不到一個方法來使它工作。我嘗試了一種簡單的警報,它在頁面加載時被調用,而不是在拖動操作之後調用。
所以我在查看宣佈與功能的變量
//$dropcallback=new CJavaScriptExpression("alert('hi')");
$dropcallback=new CJavaScriptExpression(
"function(date, allDay) {
var originalEventObject = $(this).data('eventObject');
var copiedEventObject = $.extend({}, originalEventObject);
copiedEventObject.start = date;
copiedEventObject.allDay = allDay;
$('#yw0').fullCalendar('renderEvent', copiedEventObject, true);
if ($('#drop-remove').is(':checked')) {
// if so, remove the element from the Draggable Events list
$(this).remove();
}
}
");
然後我創建這樣
$this->widget('ext.EFullCalendar.EFullCalendar', array(
'themeCssFile'=>'cupertino/jquery-ui.min.css',
'options'=>array(
'header'=>array(
'left'=>'prev,next',
'center'=>'title',
'right'=>'today'
),
'editable'=>true,
'dropable'=>true,
'drop'=>$dropcallback,
'events'=>Game::model()->gameCalendarData(),
)));
的widgit我的警予的experiance很少與JS相同的 - 所以任何幫助讚賞如何得到這個工作。
我明白,在JS中,你需要提供一個回調來允許拖拽操作成功。但是當它被包裹在yii widgit中時,我需要什麼樣的回叫?我嘗試了PHP回調,並且僅在頁面加載時才調用它。
我希望的結果是,我可以從DB構建外部事件列表 - 允許用戶將它們拖到日曆上 - 並將它們保存在數據庫中。
我確實設法從日曆中顯示的數據庫中獲取數據。
謝謝
JavaScript文件是過時,你可能需要獲得最新的腳本和替換舊 – tinybyte
通過資產的文件尋找 - jQuery是真的舊版FullCalendar v1.6.4,jQuery v1.8.3。如果我刪除資產文件夾 - 它會再次回來,但我不知道從哪裏獲取jquery。 FC changelog有更新版本的jquery - 但最新的一行說''在內部使用bower來獲取新版本的jQuery和jQuery UI「 - 所以試圖在你的應用程序中安裝bower – Adrian
而不是你的應用程序的資產,日曆擴展的腳本爲它 – tinybyte