【问题标题】:Toggle active date jQuery dateclicker切换活动日期 jQuery dateclicker
【发布时间】:2016-06-22 20:58:34
【问题描述】:

我像这样渲染我的 jQuery 日期选择器...

HTML

<div id="datepicker"></div>

JS

           $(function () {
            $('#datepicker').datepicker({
                            dateFormat: 'dd/mm/yy',
                            beforeShowDay: enableAllTheseDays,
                            dayNamesMin: [ "M", "T", "W", "T", "F", "S", "S" ],
                            duration: "slow",
                            showOtherMonths: true,
                            onSelect: function(date) {

                                    }
                                }

                            }
                        })
                       })

因此,当我在日历上选择一个日期时,它会将一个名为 ui-datepicker-current-day 的类附加到 td 元素,而内部 a 元素添加了 ui-state-active

我正在尝试,所以再次单击元素,将其关闭。但是,我无法在日期选择器中触发 onClick 事件。

我可以将 onClick 事件附加到页面上html 的其他元素。但是 jQuery UI 日期选择器中的任何内容都不会触发任何点击事件。

有人知道我做错了什么吗?

【问题讨论】:

    标签: javascript jquery html jquery-ui datepicker


    【解决方案1】:

    首先你有一个 javascript 错误(检查你的控制台) - 这是一个解析错误。你没有关闭括号。这就是为什么没有 onclick 起作用的原因。

    关于你的全局问题,试试这个:

    $(function () {
        var previousValue = null;
        $('#datepicker').datepicker({
            dateFormat: 'dd/mm/yy',
            beforeShowDay: enableAllTheseDays,
            dayNamesMin: [ "M", "T", "W", "T", "F", "S", "S" ],
            duration: "slow",
            showOtherMonths: true,
            onSelect: function(date) {
    
    
                if (previousValue == $(this).val()) {
                    $("#datepicker").datepicker('setDate', null);
                }
                previousValue = $(this).val();
            }
        });
    });
    

    http://jsfiddle.net/rafii/kgkpLakj/3/

    唯一的问题是,当您重置日期选择器时 - 它会设置当前日期。

    编辑:添加这个(这个小提琴中的整个函数:http://jsfiddle.net/rafii/kgkpLakj/4/

    在日期选择器配置中:

    defaultDate: null
    

    在 onSelect 函数中:

    $('a.ui-state-active').removeClass('ui-state-active');
    

    【讨论】:

    • 这正是我想要的。但是,现在它会将其重置回我所在的当天。所以我在Septemeber,我再次单击日期选择器日期以取消选择它,它把我送回六月。我希望它只清除所有选定的日期并让我保持在我所在的日期
    • 查看我的编辑。添加 defaultDate: null 以及 onSelect 函数 $('a.ui-state-active').removeClass('ui-state-active');
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多