Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么每次选择日期都要执行beforeShowDay?_Javascript_Jquery - Fatal编程技术网

Javascript 为什么每次选择日期都要执行beforeShowDay?

Javascript 为什么每次选择日期都要执行beforeShowDay?,javascript,jquery,Javascript,Jquery,您好,提前感谢您的帮助。 我使用Jquery中的Datepicker UI,根据文档,在日历显示之前,每天都会调用beforeShowDay函数 https://api.jqueryui.com/datepicker/option-beforeShowDay 在显示该函数之前,每天都会在datepicker中调用该函数 所以现在我遇到了一个问题,在点击一个日期后,函数会再次执行,这会给我的代码带来很多麻烦,因为它还会生成其他内容,具体取决于选择的日期 有人知道为什么会这样吗 $("#

您好,提前感谢您的帮助。 我使用Jquery中的Datepicker UI,根据文档,在日历显示之前,每天都会调用beforeShowDay函数

https://api.jqueryui.com/datepicker/option-beforeShowDay

在显示该函数之前,每天都会在datepicker中调用该函数

所以现在我遇到了一个问题,在点击一个日期后,函数会再次执行,这会给我的代码带来很多麻烦,因为它还会生成其他内容,具体取决于选择的日期

有人知道为什么会这样吗

 $("#datepicker").datepicker({
                            dateFormat: 'dd.mm.yy',
                            onSelect: function (date) {

                                displayTimes($(this).datepicker('getDate'));

                            },
                            beforeShowDay: function (date) {
                                console.log("test");
                                var result = checkAvailability(date);
                                updateTimeSelectEvents();
                                return result;
                            },
                            onChangeMonthYear: function (year, month) {
                                currentDisplayedMonth = month;
                                currentDisplayedYear = year;
                                $("#possibleTimesContainer").html('');
                                if ($("#possibleTimesContainer").find(".open").length !== 0) {
                                    $("#possibleTimesContainer").find(".open").removeClass("open");
                                }
                                getAppointementsofMonth(month, year);

                            }
                        });
console.log正在以下情况下执行:

日历将加载最初预期的内容 预计该月将发生变化 一天是意想不到的
欢迎任何帮助

选择日期时,它也会重新渲染,至少会显示选定的样式。我建议您重构代码,这样您就不会对显示的每个日期都进行大量的处理—不清楚updateTimeSelectEvents的作用是什么,但由于它不带参数,看起来可以调用一次,可能是在beforeShow中:似乎没有“渲染完成”选项