0

http://arshaw.com/fullcalendar/のFullcalendar を使用しています。検索スタックオーバーフローがありますが、問題に適合する回答がないか、理解できませんでした。これがすでに回答されている場合は、リンクを貼り付けてください。

イベントを返す xml ファイルがあります。

イベントの例:

<event allDay="false" editable="true" end="Mon Apr 29 2013 15:30:00 GMT+0100" id="53" start="Mon Apr 29 2013 08:30:00 GMT+0100" title="tesete"/>

開始日と終了日に気が付くと、時間形式はこのように保存されていました。

次のようにイベントをフェッチすると:

events: function(start, end, callback) {
            $.ajax({
                type: 'POST',
                url: url,
                dataType:'xml',
                crossDomain: true,
                data: {
                    // our hypothetical feed requires UNIX timestamps
                    start: Math.round(start.getTime() / 1000),
                    end: Math.round(end.getTime() / 1000),                      
                    'ajax':true,
                    'acc':'2',                      
                },
                success: function(doc) {                            
                    var events = [];
                    $(doc).find('event').each(function() 
                    {
                        events.push({
                            id: $(this).attr('id'),
                            title: $(this).attr('title'),
                            start: $(this).attr('start'),
                            end: $(this).attr('end'),
                            allDay: $(this).attr('allDay'),
                            editable: $(this).attr('editable')
                        });                             
                    });                                     
                    callback(events);
                }
            });     
        },

すべてのイベントは月ビューに正しく表示されますが、アジェンダ ビューまたはデイ ビューに切り替えると、イベントは allDay バーにのみ表示され、特定の時間の間はレンダリングされません。

 start="Mon Apr 29 2013 08:30:00 GMT+0100" end="Mon Apr 29 2013 15:30:00 GMT+0100" id="53"

たとえば、8:30 から 15:30 まで

私は何が欠けていますか?

問題の解決策:

events: function(start, end, callback) {
            $.ajax({
                type: 'POST',
                url: 'myurl',
                dataType:'xml',
                crossDomain: true,
                data: {
                    // our hypothetical feed requires UNIX timestamps
                    start: Math.round(start.getTime() / 1000),
                    end: Math.round(end.getTime() / 1000),                      
                    'ajax':true,
                    'acc':'2',                      
                },
                success: function(doc) {                            
                    var events = [];
                    var allday = null; //Workaround 
                    $(doc).find('event').each(function() 
                    {               

                        if($(this).attr('allDay') == "false") //Workaround 
                                allday = false; //Workaround 
                        if($(this).attr('allDay') == "true") //Workaround 
                                allday = true; //Workaround                         

                        events.push({
                            id: $(this).attr('id'),
                            title: $(this).attr('title'),
                            start: $(this).attr('start'),
                            end: $(this).attr('end'),                       
                            allDay: allday,
                            editable: $(this).attr('editable')
                        });                             
                    });                                     
                    callback(events);
                }
            });     
        },
4

1 に答える 1