3

ユーザーが「次の」月または「前の」月をクリックした後、カスタム css で日付ピッカーを再設定する必要があります。onChangeMonthYear イベントを利用していますが、ユーザーがどちらの方向に進んでいるのか (来月または前月) がわかりません。これを私に与える簡単な組み込みはありますか?そうでない場合、最も簡単な解決策は何ですか?

* 明確にするためにここにコードを追加します。イベントは実際にはサーバー側を介して受信されることに注意してください。ビルド中にデータの一部をダミー表示しました*

 var Event = function(text, className) {
            this.text = text;
            this.className = className;
        };

        var events = {};
        events[new Date("11/12/2012")] = new Event("A Good Day", "yellowDot");
        events[new Date("11/20/2012")] = new Event("Mkay", "blueDot");

        $('#date').datepicker({              
           beforeShowDay: function (date) {
               var event = events[date];
               if(event) {
                   return [true, event.className, event.text];
               }
               else {
                   return [true, '', ''];
               }
           },
           onChangeMonthYear: function () {
               //reload another calendar, past or future?

           }
        });
4

2 に答える 2

4

onChangeMonthYearハンドラー関数をdatepickerウィジェットに渡します。その関数は、次の3つの引数で呼び出されます。

  • 新しく選ばれた年、
  • 新しく選択された月、
  • datepickerウィジェットインスタンス。

したがって、次のように書くことができます。

onChangeMonthYear: function(year, month, widget) {
    reloadCalendar(month, year);
}

ウィジェットインスタンス引数は、オートコンプリートウィジェットを操作する場合に、ブリッジを通過しないようにするためのショートカットとして提供されています。たとえば、日付ピッカーをすぐに閉じたい場合は、次のように記述できます。

widget.hide();

それ以外の:

$(this).datepicker("hide");
于 2012-11-05T18:59:35.917 に答える
2

Datepicker は動的に作成されるため、使用する必要があります.live

$('.ui-datepicker-next').live("click", function() {
  alert(1)
}
于 2013-01-31T08:14:54.593 に答える