Javascript jQuery日期选择器,选择后的事件,而不是";onSelect";

Javascript jQuery日期选择器,选择后的事件,而不是";onSelect";,javascript,jquery,jquery-ui,calendar,datepicker,Javascript,Jquery,Jquery Ui,Calendar,Datepicker,因此,我正在从jQueryUIDatePicker编写一个日历,更新实例的事情让我发疯 我们的目标是用普通表中的事件填充日历,并使用正确的信息(表中给出了日期)它可以正常工作。它用事件填充日历,您可以拖放它们以使用正确的信息更新表。所有这些都完成了 但是,;我也希望能够点击一个日期,并为选定的特定日期创建一个事件,这很容易。但是,当我单击时,所有以前的事件都将被删除,因为日历实例已刷新。(真的很难解释) 函数“initialize”为日历中的每个TD提供一个具有正确“date”属性的UL(用于d

因此,我正在从jQueryUIDatePicker编写一个日历,更新实例的事情让我发疯

我们的目标是用普通表中的事件填充日历,并使用正确的信息(表中给出了日期)它可以正常工作。它用事件填充日历,您可以拖放它们以使用正确的信息更新表。所有这些都完成了

但是,;我也希望能够点击一个日期,并为选定的特定日期创建一个事件,这很容易。但是,当我单击时,所有以前的事件都将被删除,因为日历实例已刷新。(真的很难解释)

函数“initialize”为日历中的每个TD提供一个具有正确“date”属性的UL(用于dragndrop),并使用外部表中的LI填充UL

因此,如果我这样做:

$("#datepicker").datepicker({ 
    firstDay: 1, //Mon-Sun
    onSelect: function() { initialize(); }
});
什么事也没有发生。。但如果我这样做:

$("#datepicker").datepicker({ 
    firstDay: 1, //Mon-Sun
    onSelect: function() { initialize();alert(); }
});
实际上,您可以看到日历已正确填充(警报会阻止代码继续),但按“确定”时,日历实例将刷新,事件也将消失

因此,我需要的是一种“afterNewInstanceCreated:”命令,从。。 有什么想法吗

下面是它的外观:(JSFiddle),点击日期也可以看到“魔力”。

非常感谢任何帮助

找到答案:

如果在jquery ui 1.9版之前需要“afterShow”事件,可以覆盖datepicker.\u updateDatepicker函数

例如:

$(function() {
    $.datepicker._updateDatepicker_original = $.datepicker._updateDatepicker;
    $.datepicker._updateDatepicker = function(inst) {
        $.datepicker._updateDatepicker_original(inst);
        var afterShow = this._get(inst, 'afterShow');
        if (afterShow)
            afterShow.apply((inst.input ? inst.input[0] : null));  // trigger custom callback
    }
});
现在,datepicker在datepicker元素的每次更新之后都会引发一个“afterShow”事件。 然后在datapicker中使用此事件

$("#calendar").datepicker({
    firstDay: 1,
    showOtherMonths: true,
    selectOtherMonths: true,
    afterShow: function() {console.log("it works")}
});

听起来像是
onSelect
是您想要的事件,但是
initialize()
函数中的某些内容正在清除数据。检查那里的代码。不是一个解决方案,但是添加一个
e.preventDefault()
似乎是朝着正确的方向迈出的一步,我认为?不,如果不是,onSelect将在选中之前激发。(在应用“ui状态活动”类之前,我想在此之后运行我的代码。@Rory McCrossan如果它是初始化函数,那么它将不会显示任何内容,因为它在警报命中时已完成,所以它不是这个。