2016-11-18 74 views
0

私はfullcalendarを使用しています。特定の日付をクリップできないようにする方法があるかどうか疑問に思っています。私がこれまでに持っていた関数は、カレンダーのすべての「日の四角」の日付を、私が以前に定義した最大の日付と比較します。日付が最大日付を超えている場合は、それらをグレー表示するクラスを追加します。それらはまだクリック可能です。カレンダーのレイアウトでそれらを隠し、ひどく見えます。FullCalendar - 日付をクリックできないようにする

  // Grey out the dates that go beyond the maximum availability date 
      var maxParsed = Date.parse(maxDate.toString()); 
      $("td[data-date]").each(function(){ 
       var date = $(this).data('date'); 
       var dateParsed = Date.parse(date); 
       if(!isNaN(dateParsed) && dateParsed > maxParsed){ 
        $(this).addClass('fc-other-month'); 
       } 
      }); 

答えて

0

あなたがクリックされることを望まない日のテイクのjQueryの助けとreturn falseclick上のイベント(私はあなたがそれを別のクラスに割り当てられたと思います)。だから彼らはクリックで行動しない...

1

あなたはそれを扱うことができると思う。あなたのCSSに次の操作を行います。

.fc-other-month { 
    pointer-events: none; 
    cursor: default; 
} 

CSSプロパティのポインタイベントは、著者が 状況が(もしあれば)特定のグラフィック要素がマウスイベントの 対象になることができるものの下で制御することができます。このプロパティが指定されていない場合、visiblePainted値の同じ 特性がSVGコンテンツに適用されます。

あなたがここでそれについての詳細を知ることができます:それは動作しない場合は、おそらくトリックを行うことができ、デフォルトを防ぐhttps://developer.mozilla.org/en/docs/Web/CSS/pointer-events

。私はドキュメントの中に見えた

$('.fc-other-month').on('click', function(e) { 
    e.preventDefault(); 
    $(this).css({'pointer-events' : 'none'}); 
}); 

===編集====

、彼らはeventClickを持っています。この関数の内部で、「良い日付」かどうかをチェックし、クリック可能にしたくない場合はfalseを返します。

$('#calendar').fullCalendar({ 
    eventClick: function(calEvent, jsEvent, view) { 

     if (1==1 || "this is a day without click feature") { //dummy code 
      return false; //prevent clickable function 
     } 

    } 
}); 

https://fullcalendar.io/docs/mouse/eventClick/

+0

これらは動作しませんでした。私は1日のスクエアからすべてのクラスを削除しようと試みました(色/位置などを制御していると言える限り).unbind()を呼び出してすべてのイベントをバインド解除しました。まだクリック可能です。 – sdg91

+0

本当ですか?私はデモ(devtools)の 'pointer-events:none'に直接追加し、数字はクリック可能になりませんでした。私はまた、jsにそのCSSを追加することを余儀なくされました。もう一度試してください –

+0

私は確信しています。私はとにかくあなたに投票を与えた。 – sdg91

関連する問題