JQuery DatePicker Onselect обработчик событий несколько раз - PullRequest
8 голосов
/ 11 февраля 2010

Я пытаюсь обработать одно и то же событие onSelect объекта jquery datePicker дважды. Из того, что я понимаю, событие может быть обработано несколько раз, но когда я пытаюсь это сделать, запускается только один из обработчиков событий. Кажется, уволить второй обработчик, но не первый. Как я могу обработать одно и то же событие onSelect дважды, не перекрывая первое? Это фрагмент кода проблемы.

$(document).ready(function(){
    $('.test').datepicker();
    ...
    $('.test').datepicker('option', 'onSelect', function(dateText, inst) { alert('one'); });
}

...

$(document).ready(function(){
    $('.test').datepicker('option', 'onSelect', function(dateText, inst) { alert('two'); });
}

1 Ответ

11 голосов
/ 11 февраля 2010

Код, который вы используете, просто заменяет первый обработчик onSelect вторым. Если вы хотите сделать две вещи, то вам сначала нужно получить существующий обработчик onSelect, а затем вызвать его из обработчика, которым вы его заменяете.

$(function() {
     $('.test').datepicker();
     $('.test').datepicker('option', 'onSelect', function(dateText,inst) { alert('one'); } );
     var prevHandler = $('.test').datepicker('option','onSelect');
     $('.test').datepicker('option', 'onSelect', function(dateText,inst) { prevHandler(dateText,inst); alert('two'); } );
});
...