0

ですから、私はかなり基本的な質問だと思いますが、私はそれを理解することができません。クリックした後、選択した日付要素(dom)をどのように参照しますか。私はこれを試しました:

$("#eventCalendar").datepicker({
 onSelect: function(dateText,inst){  
  var activeDateObj = $("#eventCalendar").find('.ui-state-active');  
 } 
});

これはオブジェクトを返しますが、以前に選択した要素を参照していると思います。クラスのように、まだ新しい要素に適用されていません。instオブジェクトにクリックされた要素への参照が含まれていないことに本当に驚いています。変数宣言の周りにクイックタイムアウトをラップすることでこのメソッドを機能させましたが、これはかなり汚いので、もっと良い方法があるかどうか知りたいです。前もって感謝します。

4

2 に答える 2

1

OPへのコメントに応えて。

カレンダーは、日が選択されるたびに日を含むテーブルをリロードするように見えることから、月を変更するときにもこれを実行します。

これを使用する.live('click',function(){...})と、関数をアタッチできるようになります。

セレクターにとっては、このようなものが最適かもしれません

 //attached to an input, not displayed inline.
$('#ui-datepicker-div .ui-datepicker table.ui-datepicker-calendar td[class!=ui-state-disabled]')

これで、どの日付が選択されたかを確認する必要があります。

于 2010-05-26T11:42:56.480 に答える
1

解決

//...
onSelect: function(date, inst) {
    setTimeout(function() {
        console.log($('a.ui-state-active')); // clicked day's DOM-Element
    }, 0);
}

setTimeout-Wrapperは、カレンダーが更新された後、データをキューに入れます。

于 2015-01-22T09:37:52.633 に答える