2017-01-13 1 views
1

私のウェブページにはフルカラーがあります。カレンダーにはイベントがあります。 dayClickイベントハンドラで私は関数を呼び出しています。FullCalendar dayClickデタッチしないjsイベント

問題は1回目のクリックで関数が1回呼び出されることです。 2回目は2回、3回目は3回などと呼ばれています。

問題は、クリックイベントが切り離されていないことがわかります。しかし私はそれを解決することができません。

コード:

$('#calendar').fullCalendar({ 
    header: { 
     left: 'prev,next today', 
     center: 'title', 
     right: 'month,agendaWeek,agendaDay' 
    }, 
    eventLimit: true, 
    defaultView: 'month', 
    editable: false, 
    eventClick: function (event) { 
     if (event.url) { 
      window.open(baseUrl + event.url); 
      return false; 
     } 
    }, 
    dayClick: function (date, allDay, jsEvent, view) { 
     var dateString = ''; 
     dateString = moment(date, 'YYYY-MM-DD').format().split('T')[0]; 
     $('#popup').modal('toggle'); 
     $('#popup').on('shown.bs.modal', function() { 
     AsyncFn().done(function (result) { 
      AnotherAsyncFn(function() { 
       SomeFunction(); //This function gets called multiple times           
       }); 
      });     
     });       
    } 
}); 

私はこのイベントを取り外しするかどうかはわかりません。 offまたはunbindを使用している可能性がありますが、正確な方法はわかりません。 誰もこれについて助けを与えることができますか?

答えて

3

offメソッドを使用する必要があります。

$('#popup').on('shown.bs.modal', function() { 
    $('#popup').off('shown.bs.modal'); 
    AsyncFn().done(function (result) { 
     AnotherAsyncFn(function() { 
      SomeFunction(); //This function gets called multiple times           
     }); 
    });     
}); 
+0

ありがとうございます! –

0

もう一度イベントを添付する前にjQuery.unbind()を試してください。

dayClick: function (date, allDay, jsEvent, view) { 
    var dateString = ''; 
    dateString = moment(date, 'YYYY-MM-DD').format().split('T')[0]; 
    $('#popup').modal('toggle'); 
    $('#popup').unbind("shown.bs.modal").on('shown.bs.modal', function() { 
    AsyncFn().done(function (result) { 
     AnotherAsyncFn(function() { 
      SomeFunction(); //This function gets called multiple times           
      }); 
     });     
    });       
} 
関連する問題