2013-07-01 2 views
1

Я пытаюсь добавить или добавить функцию в существующий стек вызовов для события datepicker jqueryui onSelect, но я терпеть неудачу.Добавление/добавление функции в существующее событие jqueryui DatePicker 'onSelect'?

Ive наклеил пример того, что я пытаюсь сделать здесь.

В принципе, он должен alert('abc'), затем alert('def') после того, как был выбран первый выбор даты.

http://jsfiddle.net/cfE7w/

Любые советы оценили.

ответ

2

После того, как вы назвали этот

$('#hello').datepicker("option", "onSelect", function(){ 
    var prevFunction ... 

текущий обработчик событий уже новый один! Поэтому, когда срабатывает событие и следующий код выполняет

var prevFunction = $(this).datepicker("option","onSelect"); 

prevFunction указывает на себя. Вы можете решить эту проблему с помощью IIFE:

$('#hello').datepicker("option", "onSelect", 
    (function() { 
    var prevFunction = $('#hello').datepicker("option","onSelect"); 
    return function(){ 
     prevFunction(); 
     alert('def'); 
    }; 
}())); 

Теперь var prevFunction = .. вызывается сразу и старый обработчик сохраняется. Новый обработчик назначается return function(){ ....

Смежные вопросы