3

jQuery DateTimePicker アドオン (作成者: Trent Richardson ) を使用していますが、日付と時刻を選択した後にのみ閉じます。ただし、一部のユーザーは時間を気にせず、日付のみを選択した後にカレンダーを閉じたいと考えています。

日付のみを選択した後、なんとかカレンダーを閉じることができましたが、シングルクリックではなくダブルクリックを実装する必要があります。それ、どうやったら出来るの?これが私のコードです:

$(jqCompletedEndID).datetimepicker({  
    ampm: true, 
    onSelect: function(){
       $(this).datepicker("hide"); $(this).blur();
    }
});

Javascript に dblclick イベントがあることは知っていますが、このコンテキストでそれを適用する方法がわかりません。

ありがとうございました!

4

3 に答える 3

1

私はまったく同じ問題/要件に遭遇しました。Alexのソリューションに非常によく似たものを試しましたが、datetimepickerは、日が選択されたときにすべてのスタイルとイベントバインディングを消去するように見えるため(再構築されていると思いますが、チェックしていません)、機能しません。起動するdblclickイベント。

私はきれいではないがうまくいく解決策を思いついた。次のように、datetimepickerのonSelectイベントを使用して、いくつかのハンドラーをバインドできます。

(this ._ $ inputが使用されている入力コントロールへのjQuery参照であると仮定します)

this._$input.datetimepicker({
...
onSelect: function() {
    var self = this;
    setTimeout(
            function () {
                $('.ui-datepicker-current-day').bind('click', function () { self._$input.datepicker('hide'); });
                $('.ui-datepicker-current-day').bind('dblclick', function () { self._$input.datepicker('hide'); });
            },
            0
        );
}

特に、ダブルクリックが機能しないという上記の主張に照らして、なぜクリックとダブルクリックの両方をバインドするのか疑問に思われるかもしれません。Chrome、FireFox、Safari、Operaでは、イベントによって「クリック」イベントがトリガーされるようですが、IEでは「dblclick」イベントがトリガーされます。また、setTimeoutが気になる場合は、メソッドが終了するまでポップアップが作成されないため、setTimeoutが必要です。これがないと、これらのセレクターは何も返しません。

ダブルクリックの一部であるかどうかに関係なく、現在選択されている日付がクリックされると、私のソリューションでもピッカーが閉じられることに間違いなく気づきました。これは私の場合は意図的なものです(また、beforeShowイベントで同じロジックをトリガーしてハンドラーをワイヤリングするため、現在選択されている日付をクリックすると常にピッカーが閉じます)。あなたの場合、ダブルクリックで厳密に機能させたい場合は、クリック間の時間を追跡し、クリックが一定のしきい値内に到達することを確認することをお勧めします。

于 2013-01-22T05:32:37.463 に答える
0

これを試して...

$('#datepicker').datepicker({
     //...
});


$('table.ui-datepicker-calendar a').bind('dblclick', function() {
   $('#datepicker').val();
});
于 2012-11-02T15:56:49.460 に答える
0

doubleclickhtml タグ自体にイベント ハンドラーを追加できます。日付ピッカー用の空の div があるため、次のように変更します。

<div id="datepicker" ondblclick="close()"></div>

close()関数で、div を非表示にするコードを記述しますdatepicker

于 2012-11-02T16:33:20.540 に答える