私は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 値を返し、それを他の場所で使用する方法がわかりません
助けていただければ幸いです。ありがとう!