0

FullCalendar を使用して Google カレンダーを読み込んでいます。aカレンダーの特定のクラスのタグをすべて s に変換したいspan。私のコードは、ページがロードされた後に Scratchpad で実行するとうまく機能しますが、JavaScript ファイルのカレンダー コードの直後に配置すると、何もしません (すべてaの はまだaです)。私のコード:

$(document).ready(function() {
  $('#calendar').fullCalendar({
      eventSources: [
        'MY CALENDAR URL',
        {
            url: 'https://www.google.com/calendar/feeds/en.usa%23holiday%40group.v.calendar.google.com/public/basic',
            className: 'holiday'
        }
      ],
      header: {
        left:   'title',
        center: '',
        right:  'prev,next'
      }
  });
  var aclass = $('a.holiday').attr('class');
  var astyle = $('a.holiday').attr('style');
  var atext = $('a.holiday').html();
  $('a.holiday').replaceWith('<span style="'+ astyle +'" class="'+ aclass +'">'+ atext +'</span>');
});

JS エラー コンソールに表示されるエラーは 2 つだけです。

[17:34:08.182] getUserData() または setUserData() の使用は非推奨です。代わりに WeakMap または element.dataset を使用してください。

[17:34:08.663] SyntaxError: //@ を使用してソース マップ URL プラグマを示すことは非推奨です。代わりに //# を使用してください

どちらも私の問題とは関係がないようです。1 つは jQuery にあり、もう 1 つは requestNotifier.js にあります。

4

2 に答える 2

1

FullCalendar には、イベントのスタイルを自由に設定できる便利なフックがいくつか用意されています。

eventAfterAllRender作業を完了する 1 つの方法は、次のように現在のコードを に移動することです。

$('#calendar').fullCalendar({
  [...]
  eventAfterAllRender: function() {
    var aclass = $('a.holiday').attr('class');
    var astyle = $('a.holiday').attr('style');
    var atext = $('a.holiday').html();
    $('a.holiday').replaceWith('<span style="'+ astyle +'" class="'+ aclass +'">'+ atext +'</span>');
  }
  [...]
});
于 2013-08-11T17:31:33.890 に答える
0

OK、これを理解しました: カレンダーは完全に読み込まれる必要があるため、異なるイベントでコードを分離するとうまくいきます:

$(document).ready(function() {
  $('#calendar').fullCalendar({
      eventSources: [
        'https://www.google.com/calendar/feeds/r9iglfiamf6s7vr61lspgaa35g%40group.calendar.google.com/public/basic',
        {
            url: 'https://www.google.com/calendar/feeds/en.usa%23holiday%40group.v.calendar.google.com/public/basic',
            className: 'holiday'
        }
      ],
      header: {
        left:   'title',
        center: '',
        right:  'prev,next'
      }
  });
});
$(window).load(function() {
  var aclass = $('a.holiday').attr('class');
  var astyle = $('a.holiday').attr('style');
  var atext = $('a.holiday').html();
  $('a.holiday').replaceWith('<span style="'+ astyle +'" class="'+ aclass +'">'+ atext +'</span>');
});
于 2013-08-10T23:13:04.350 に答える