如何将其他事件处理程序添加到jquery-ui datepicker实例?

时间:2012-01-27 16:51:20

标签: jquery jquery-ui events jquery-ui-datepicker

我有一个带有onSelect事件处理程序的日期选择器。稍后在我的程序中,我想添加其他onSelect处理程序。问题是,他们消灭了第一个。 (Fiddle。)

如何在不这样做的情况下添加其他处理程序?

1 个答案:

答案 0 :(得分:1)

您可以在阵列中维护所需的呼叫;

var firstHandler = function(dateText, inst) {
    console.log('Original Handler', dateText, inst);
};

var secondHandler = function(dateText, inst) {
    console.log('Second Handler', dateText, inst);
};

$('#datepicker').datepicker({
    onSelect: function() {
        var sinks = $(this).data("mySelects");
        for (var i = 0; i < sinks.length; i++)
            sinks[i].apply(this, arguments);
    }
}).data("mySelects", [firstHandler]);

$('#addBtn').click(function(event) {
    $('#datepicker').data('mySelects').push(secondHandler);
    $('#datepicker').data('mySelects').push(nthHandler);
});