Переопределить jQuery UI DatePicker _generate HTML-функцию

В jQuery UI 1.7 я успешно переопределил функцию datepicker._generateHTML, выполняющую скрипт в форме:

jQuery.datepicker._generateHTML = function(inst) {
  ...revised code...
};

Когда я попытался перейти на версию 1.8, используя тот же подход, я столкнулся с проблемой. Версия 1.8 добавила переменную области видимости закрытия datepicker dpuuid, на которую есть ссылка в новой версии '... исправленного кода ...'. datepicker._generateHTML теперь не работает с dpuuid is not defined' error.

Я все еще достаточно новичок в Javascript, чтобы не понимать всех тонких аспектов языка. Итак, мой первый вопрос: «Может ли функция, которая ссылается на переменную области закрытия, быть переопределена и по-прежнему иметь доступ к исходной области закрытия?»


person claytoncarney    schedule 22.05.2011    source источник
comment
Реализация по умолчанию делает много вещей, которые мне не нужны - в основном мне нужна функциональность настенного календаря. Я заменяю _generateHTML, чтобы принудительно отображать 6 строк, нельзя выбирать даты и другие ограничения.   -  person claytoncarney    schedule 22.05.2011
comment
@claytoncarney: Вы всегда можете добавить свой комментарий / решение в качестве ответа и принять его :)   -  person Andrew Whitaker    schedule 22.05.2011
comment
Я попытался сделать это, однако получил сообщение об ошибке, в котором говорилось, что новые пользователи должны подождать 8 часов, прежде чем отвечать на свои вопросы. Иди разбери ...   -  person claytoncarney    schedule 22.05.2011
comment
Подумал об этом, но так и не нашел хорошего учебника по плагинам.   -  person claytoncarney    schedule 23.05.2011
comment
Я только что опубликовал здесь ответ: stackoverflow.com/a/22509190/87015   -  person Salman A    schedule 19.03.2014


Ответы (1)


Я нашел ответ в ответе Томаса на jQuery DatePicker как отключить автоматический выбор дня при просмотре календаря?

Добавление следующего текста в начало моего "... измененного кода ...":

  if (!inst.dpuuid) {
    for (attr in window) {
      if(/^DP_jQuery_/.test(attr)) {
        inst.dpuuid = attr.replace(/^DP_jQuery_([0-9]+)/, '$1');
      }
    }
  }
  var dpuuid = inst.dpuuid;

устранил dpuuid is not defined' error. В FireBug я видел, что область закрытия видна из объекта окна, но понятия не имел, как извлечь из нее значения.

Спасибо, Томас !!

person Community    schedule 08.11.2014