fullcalendar selectMinDistance 取消选择时不考虑距离

fullcalendar selectMinDistance not respecting distance when unselecting

我正在使用 fullcalndar selectMinDistance

示例初始化:

我认为这适用于像素比率。我已将其设置为 selectMinDistance: 155

            var calendar = new FullCalendar.Calendar(calendarEl, {
                initialView: 'dayGridMonth',
                selectable: true,
                eventOverlap: true,
                selectOverlap: true,
                validRange: {
                    start: year + '-05-20',
                    end: year + '-11-15'
                },
                selectMinDistance: 155,
...

效果很好,因为我希望至少选择 3 天。但是,当用户选择,然后决定在同一个鼠标上按下以取消选择时,他可以取消选择并将其降低到某一天。有点违背了目的。

有谁知道 FullCal 中是否有什么东西可以防止这种情况发生或有什么好的修复方法?我没有在文档中找到任何可以帮助我的东西...

对于我的应用程序 selectMinDistance 不是最好的方法,我被指出使用 selectAllow 发现 here 而不是效果很好。

不知道为什么第一次在网上搜索没找到

为防止用户选择少于设定天数的日期,您使用此函数并抛出 true 或 false 以供用户选择

我的示例用法

            var year = new Date().getFullYear();

            var calendar = new FullCalendar.Calendar(calendarEl, {
                initialView: 'dayGridMonth',
                selectable: true,
                eventOverlap: true,
                selectOverlap: true,
                validRange: {
                    start: year + '-05-20',
                    end: year + '-11-15'
                },
                //  selectMinDistance: 155,  this will not work for deselecting
                selectAllow: function(selectInfo){
                    console.log(selectInfo);

                    //  create a day
                    var oneDay = 24 * 60 * 60 * 1000;
                    var startDay = selectInfo.start;
                    //  FullCalendar always gives next next day of select end day, so do minus one day
                    var endDay = selectInfo.end - oneDay;
                    var count = Math.round(Math.abs((startDay - endDay) / oneDay));
                    //  starts at 0, so add to start at 1
                    var dayCount = (count + 1);
                    if(dayCount >= 3){
                        return true;
                    }else{
                        return false;
                    }


                },
...