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

我认为您正在使用两个 js 文件,您的下一个按钮将覆盖其中,因此请尝试更改 html 页面上 js 文件的顺序

于 2013-09-04T07:14:45.940 回答
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 回答