2017-07-27 6 views
0

Fullcalendarは月表示でうまく機能しますが、現在の月のイベントリストも必要です(ナビゲーションカレンダー月)。ここでjQuery Fullcalendarでは、カレンダーの下の現在の月表示のイベントリストを表示する方法

は私の現在のカレンダーです:

jQuery(document).ready(function() { 
jQuery('#cwcalendar').fullCalendar({ 
events: 'http://xxxxx.com/json-page.php', 
    color: '#d81f59', 
    eventColor: '#d81f59', 
    theme: true, 
    firstDay: 1, 
    height: 400, 

    columnFormat: { 
    month: 'dd' 
    }, 
    header: { 
    left: 'prev', 
    center: 'title', 
    right: 'next' 
}, 
    buttonIcons: { 
    prev: 'left-single-arrow', 
    next: 'right-single-arrow', 
    prevYear: 'left-double-arrow', 
    nextYear: 'right-double-arrow' 
}, 
    views: { 
     month: { 
      titleFormat: 'MMMM YYYY' 
     } 
    }, 
    eventRender: function (event, element) { 
    var dataToFind = moment(event.start).format('YYYY-MM-DD'); 
    jQuery("td[data-date='"+dataToFind+"']").addClass('activeDay'); 
}, 
    eventMouseover: function(calEvent, jsEvent) { 
     var tooltip = '<div class="tooltipevent" style="width:100px;height:60px;padding:8px;background:#fff;position:absolute;z-index:10001;border-style:solid;border-width:1px;border-radius:5px;border-color:#d81f59;">' + calEvent.title + '</div>'; 
    jQuery("body").append(tooltip); 
    jQuery(this).mouseover(function(e) { 
     jQuery(this).css('z-index', 10000); 
     jQuery('.tooltipevent').fadeIn('500'); 
     jQuery('.tooltipevent').fadeTo('10', 1.9); 
    }).mousemove(function(e) { 
     jQuery('.tooltipevent').css('top', e.pageY + 10); 
     jQuery('.tooltipevent').css('left', e.pageX + 20); 
    }); 
    }, 
}); 

available viewはlistMonthですが、別のカレンダーで、次のように使用された場合、これは表示されません:

defaultView: 'listMonth' 

質問は、私が働いています、ですリストビューで別のカレンダーを作成することができます。もしそうならば、カレンダーの月選択に従ってリストが変更されるように、どのように統合できますか?あるいは、これを行う別の方法がありますか?あなたは現在のビューのイベントの配列を取得することができます任意の助けclientEvents

答えて

0

ため

感謝します。 viewRenderを使用すると、ビューがいつ変更されるかを通知できます。

デモhttps://jsfiddle.net/smcnma7j/ @

$(document).ready(function() { 
    var event_list = $('#event_list'); 

    $('#calendar').fullCalendar({ 
    // mock events for demo 
    events: function(start, end, tz, callback) { 
     var events = []; 
     var num_events = Math.floor(Math.random() * 25) + 10; 
     for (var i = 0; i < num_events; i++) { 
     events.push({ 
      start: moment(start).add(Math.random() * 30, 'days'), 
      title: 'Event that starts on' 
     }); 
     } 
     callback(events); 
    }, 
    // every time the view updates, update the event list 
    viewRender: function(view, element) { 
     var events = $('#calendar').fullCalendar('clientEvents'); 
     handleViewChange(events); 
    } 
    }); 

    function handleViewChange(events) { 
    event_list.html(''); 
    var ul = $('<ul/>'); 
    $.each(events, function(index, event) { 
     var li = $('<li/>'); 
     li.text(event.title + ' ' + event.start.format()); 
     ul.append(li); 
    }); 
    event_list.html(ul); 
    } 
}); 
+0

は私が探していたまさに、あなたがそれを指摘するために@smcdありがとうございました。非常に感謝:) – eleventy

+0

申し訳ありません私は、jsonのフィードデータを受信するイベント関数を取得する方法で少し失われています。私はajaxを使ってdataTypeを 'json'として指定しますか? 'date:'を 'data:{}'に入れます(これらはすべて1日のイベントです)。成功関数には 'events.push'が含まれています。そうですか?私のために明確にしてもよろしいですか?多くのありがとう – eleventy

+0

あなたはあなたの** events: '/json-page.php'**を使って、ビューレンダリング/変更時にあなたに通知する** viewRender **コードを持っていなければなりません。私はデモのサンプルデータをランダムに提供するために[関数としてのイベントをjsonフィードとして使用しました](https://fullcalendar.io/docs/event_data/) – smcd

関連する問題