0

私は 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');
                }
            });
4

2 に答える 2

2

cssだけでそれを処理できると思います。あなたのCSSでこれを行います:

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

CSS プロパティ pointer-events を使用すると、作成者は特定のグラフィック要素がマウス イベントのターゲットになる状況 (存在する場合) を制御できます。このプロパティが指定されていない場合、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/

于 2016-11-18T19:23:48.180 に答える
0

クリックされたくない日付のjQueryとイベント(別のクラスを割り当てたと思います)の助けを借りてreturn falseください。clickしたがって、クリックしても動作しません...

于 2016-11-18T19:22:35.497 に答える