4

私のプロジェクトには、前月/翌月に移動するボタンがある日付ピッカーがあります。次のようになります。 ここに画像の説明を入力

しかし、コントロールの左右隅にあるボタンをクリックすると、突然消えます。

jquery関数:

 $( "#departDate" ).datepicker({
        showOtherMonths: true,
        //inline:true,
        dateFormat: 'dd-mm-yy',
        numberOfMonths: 2,
        selectOtherMonths: true,
        minDate: 0,
        onClose: function (selectedDate) {
            $("#arriveDate").datepicker("option", "minDate", selectedDate);
            if (!single && $("#arriveDate").val()=="")
                $("#arriveDate").focus();
        }
    });

私はコメントアウトしようとしましたが、これらの修正された問題はonClose:ありません。minDate

この日付ピッカーのぼかし機能を削除すると、消えなくなります。しかし、このツールのどこかをクリックすると消えるようにする必要があります。

4

3 に答える 3

2

クリックイベントを追加して、日付ピッカーのすべての要素をチェックする必要があります。これはあなたに役立つかもしれません:

$(document).on("click", function (e) {
        var elem = $(e.target);
        if (!elem.hasClass("hasDatepicker") &&
            !elem.hasClass("ui-datepicker") &&
            !elem.hasClass("ui-icon") &&
            !elem.hasClass("ui-datepicker-next") &&
            !elem.hasClass("ui-datepicker-prev") &&
            !$(elem).parents(".ui-datepicker").length) {
            $('#departDate').datepicker('hide');
        }
于 2013-09-04T14:13:07.230 に答える
1

この問題が私のフィドルに残っているとは思いません。

あなたが言及したので、

この日付ピッカーのぼかし機能を削除すると、消えなくなります。しかし、このツールのどこかをクリックすると消えるようにする必要がありますか?

日付ピッカーの外側をクリックするたびに非表示になるような回避策があります。

$(document).on('click',function (e) {
    var container = $("#departDate");    
    if (!container.is(e.target) 
        && container.has(e.target).length === 0) {
        container.hide();
    }
});

JSFiddleでこれが機能していることを確認してください

あなたが理解することを願って。

于 2013-09-04T08:05:23.690 に答える
1

次のボタンがオーバーライドされる2つのjsファイルを使用していると思うので、htmlページでjsファイルのシーケンスを変更してみてください

于 2013-09-04T07:14:45.940 に答える