Как добавить дополнительные обработчики событий в экземпляр datepicker jquery-ui? - PullRequest
5 голосов
/ 27 января 2012

У меня есть средство выбора даты с обработчиком события onSelect. Позже в моей программе я хочу добавить другие обработчики onSelect. Проблема в том, что они уничтожают первый. ( Fiddle .)

Как я могу добавить дополнительные обработчики без этого?

1 Ответ

1 голос
/ 27 января 2012

Вы можете поддерживать желаемые вызовы в массиве;

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);
});
...