0

私はJSが初めてで、最近、Jquery-UI Datepickerを使用しているときに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 関数を使用する必要があります。そうしないと、Jquery UI の datepicker から返される値が正しくありません。

理想的には、タイムアウト関数内で設定された関数 getStartDate() から返される値になるように startDate を探しています。

私が書いていることは明らかに間違っており、タイムアウト関数内から startDate 値を返し、それを他の場所で使用する方法がわかりません

助けていただければ幸いです。ありがとう!

4

0 に答える 0