その月にフライトがない場合、jQuery datepicker の月のドロップダウンから月を削除するように依頼されました。私の最初の考えは、beforeShowイベントで、年ドロップダウンに変更イベント ハンドラーを追加して、その年の月ごとに monthHasFlights() という関数を呼び出すことです (初めて手動で呼び出します)。日付ピッカーがロードされます)。monthHasFlights() が false を返す場合、その月を削除します。 問題は...ハンドラーが接続されないことです。
そのため、beforeShow イベント ハンドラー内には次のようなものがあります。
$('.ui-datepicker-year').change(function(){setDropdownMonths()});
しかし、この行がfirebug/toolsで実行されているのを見ても、イベントは決してアタッチしません。jQueryイベントバインディングについての私の理解は、変更イベントに何度でも割り当てることができ、ハンドラーは作成した順序で起動するということです。 . しかし、私はそれを間違っていると思いますか? イベント ハンドラーをアタッチしようとしたときにドロップダウンがまだ存在しないということですか? setTimeout を 100 に設定してみましたが、まだイベントがアタッチされません。任意の提案をいただければ幸いです。