Jquery ui 从Jquery datepicker中的setTimeout函数中检索值

Jquery ui 从Jquery datepicker中的setTimeout函数中检索值,jquery-ui,settimeout,jquery-ui-datepicker,Jquery Ui,Settimeout,Jquery Ui Datepicker,我是JS新手,最近在使用jQueryUIDatePicker时遇到了setTimeout函数的问题 我想从setTimeout函数中引用的函数中获取一个值,并在代码的其他区域使用该值。然而,由于setTimeout延迟了代码的执行,我似乎无法分配和使用上述值 这是部分代码 $calendar.datepicker({ inline: true, onSelect: function (dateText,inst) { var startDate;

我是JS新手,最近在使用jQueryUIDatePicker时遇到了setTimeout函数的问题

我想从setTimeout函数中引用的函数中获取一个值,并在代码的其他区域使用该值。然而,由于setTimeout延迟了代码的执行,我似乎无法分配和使用上述值

这是部分代码

$calendar.datepicker({
    inline: true,
    onSelect: function (dateText,inst) {
        var startDate;
        window.setTimeout(function(){getStartDate();}, 1);

        // ... Do something with startDate. No matter how I try, startDate is always undefined. 

        function getStartDate () {
            var r = $calendar
                .find('.ui-datepicker-current-day')
                    .parent()
                        .find('.selectable')
                        .first()
                            .children()
                            .text();

            startDate = new Date(date.setDate(r));
            return startDate;

        }
    },
});
我需要使用setTimeout函数,否则jQueryUIDatePicker返回的值是错误的

理想情况下,我希望startDate是从函数getStartDate()返回的值,该函数在timeout函数中设置

我写的显然是错误的,我不知道如何从timeout函数中返回startDate值并在其他地方使用它


非常感谢您的帮助。谢谢

我需要使用setTimeout或返回的值错误是什么意思?你想达到什么目标?获取用户在日期选择器中选择的日期?如果是这样,你可以使用$(你的日期选择器id)。日期选择器(“getDate”)@JanR我基本上是在尝试构建一个日期选择器,允许用户从日期选择器中选择一个3天的包。基本上逻辑是这样的:1。例如,用户将选择他们想要的3天(周二、周三、周四)。2.Datepicker将显示当月所有可能的可选时段。3.用户可以点击3天中的任何一天(星期二、星期三或星期四),datepicker将把星期二注册为第一天,星期四注册为最后一天。上面的功能是我试图确保无论用户点击哪一天都将第一天设为星期二的拙劣尝试。Datepicker由于某些原因只在onSelect处理程序中注册单击,它必须使用setTimeout函数,或者注册的单击是上一次单击,可能是因为我试图使用lame方法获取它。同样,我无法尝试在datepicker上设置click处理程序,因为datepicker不会注册在其他地方定义的可选区域上发生的任何click事件。