0

わかりました。プラグインの初期化後に値を設定しようとすると、値がコールバック関数であるオプションの設定に問題があります。これは、カレンダーを初期化した後にイベントコールバックを動的に設定するための一般的な動作だと思います。

コードの概要は次のとおりです。

$(document).ready(function(){
  $('#calendar')。fullCalendar({
   編集可能:false
   、events:[{"title": "meeting.title"、 "start": "2010-05-21 15:58:16 UTC"}、{"title": "meeting.title"、 "start": " 2010-05-24 15:58:16 "、" url ":" http://google.com "}]
 / *、eventClick:function(event){
              if(event.url){
                  window.open(event.url);
                  falseを返します。
              }
          }
   * /
  });
 $('#calendar')。fullCalendar('option'、'eventClick'、function(event){
          if(event.url){
              window.open(event.url);
              falseを返します。
          }
      });

});

eventClick関数をinitオプションとして設定するとコメントアウトされていることがわかります。私がそのようにすれば、それはうまくいきます。ただし、initの後に設定しようとすると、機能しません:(

これを行う他の方法はありますか?それとも、動作を事前に設定する必要がありますか?

4

2 に答える 2

1

明らかに、あなたはすでにこの問題を回避していると確信していますが、この問題に遭遇する可能性のある人のために、私がどのように回避したかを以下に示します。

 $(document).ready(function() {
  $('#calendar').fullCalendar({
   editable: false
   ,events:[{"title":"meeting.title","start":"2010-05-21 15:58:16 UTC"},{"title":"meeting.title","start":"2010-05-24 15:58:16", "url":"http://google.com"}]
   ,eventClick: function(event) {eventClickCustom(event)}
  });

var eventClickCustom = function(event)
{
    //do what you want here, you can can update this function all you want.
}

//then later
var eventClickCustom = function(event)
{
   //updated version of the function
}
于 2011-09-23T18:50:26.550 に答える
0

fullCalendareventClickコールバック メソッドです。コードを調べたところ、カレンダーが初期化された後にこのオプションを追加できないと思います。カレンダーのデータ (パブリック関数を格納する場所) に eventClick 関数を追加してみました。したがって、私が考えることができる唯一の代替手段は、独自のイベント ハンドラーをアタッチすることです。これを試すことができます:

$('#calendar').find('.fc-event,.ui-event').find('a[href]').live('click', function(){
 window.open( $(this).attr('href') );
 return false;
})

.fc-eventああ、私がとクラスの両方をターゲットにしている理由は、オプション.ui-eventを使用しているかどうかによって変化するからです。theme

于 2010-05-20T21:00:22.900 に答える