3

この最も可能性の高い単純な質問で申し訳ありません。カスタムJSONデータを fullCalendar に追加し、それを dayClick コールバック関数で使用したいと考えています。より具体的には、dayClick で customData の要素にアクセスして変更したいと考えています。しかし、私はそれを行う方法を理解できませんでした。fullcalendar のソースコードを変更しなくても可能ですか?

事前にどうもありがとう

$('#calendar').fullCalendar({
    ....
    firstDay: 1,
    customData: { foo: 'bar', more: 'baz' },
    dayClick: function(date, allDay, jsEvent, view) {
        // Within the callback function, this is set to the <td> of the clicked day.
        var t = $(this);
        var foo = customData.foo; // does not work
        customData.more = 'foo'; // does not work

        // Change the day's background color
        if (t.hasClass('badge-important') && foo == 'bar') {
            t.removeClass('badge-important');               
        } else {
            t.addClass('badge-important');              
        }
    },
});
4

1 に答える 1

1

問題は、どこにも customData 変数を定義していないことです。JSON を格納する変数を作成する次のアプローチは、問題を解決します。以下のコードを確認してください。

var customData = {"foo":"bar"};

$('#calendar').fullCalendar({
....
firstDay: 1,
customData: customData,
dayClick: function(date, allDay, jsEvent, view) {
    // Within the callback function, this is set to the <td> of the clicked day.
    var t = $(this);
    var foo = customData.foo; // will now work
    customData.more = 'foo' // will work too

    // Change the day's background color
    if (t.hasClass('badge-important') && foo == 'bar') {
        t.removeClass('badge-important');               
    } else {
        t.addClass('badge-important');              
    }
},
});

お役に立てば幸いです。乾杯

于 2012-11-14T15:40:40.200 に答える