Anytime.js Javascript Datepicker выдает ошибку консоли - PullRequest
0 голосов
/ 28 декабря 2011

Я использую библиотеку datetime.js для плагина WordPress, разработанную специально для меня. Я говорю это, потому что я не являюсь первоначальным разработчиком, и я боюсь вырвать библиотеку и заменить ее в случае, если это означает замену большого количества вызовов функций, которые являются эксклюзивными для этой библиотеки.

Вы можете увидеть эту библиотеку здесь: http://www.ama3.com/anytime/

К сожалению, библиотека нарушает некоторые ключевые функции бэкэнда WordPress начиная с версии 3.3. Я подтвердил, что отключение библиотеки полностью решает проблему.

Консоль Google Chrome выдает следующую ошибку:

Uncaught TypeError: Cannot read property 'left' of null
AnyTime.picker.__pickers.(anonymous function).posanytime.js:3032
AnyTime.picker.__pickers.(anonymous function).initializeanytime.js:1858
f.event.dispatchload-scripts.php:3
f.event.add.h.handle.iload-scripts.php:3
f.event.triggerload-scripts.php:3
f.fn.extend.triggerHandlerload-scripts.php:3
(anonymous function)load-scripts.php:3
f.Callbacks.nload-scripts.php:2
f.Callbacks.o.fireWithload-scripts.php:2
e.extend.readyload-scripts.php:2
c.addEventListener.B

в следующих строках (3027 - 3039) из anytime.js строка 3032 var left = off.left является ошибочной строкой кода в соответствии с консолью:

        if ( this.pop )
        {
          var off = this.inp.offset();
          var bodyWidth = $(document.body).outerWidth(true);
          var pickerWidth = this.div.outerWidth(true);
          var left = off.left;
          if ( left + pickerWidth > bodyWidth - 20 )
            left = bodyWidth - ( pickerWidth + 20 );
          var top = off.top - this.div.outerHeight(true);
          if ( top < 0 )
            top = off.top + this.inp.outerHeight(true);
          this.div.css( { top: String(top)+'px', left: String(left<0?0:left)+'px' } );
        }

У кого-нибудь есть предложения, как это отладить?

1 Ответ

1 голос
/ 29 декабря 2011

Проблема в том, что страница пытается создать средства выбора для несуществующих полей. Причина проблемы не в anytime.js , а внутри встроенного скрипта (в частности, строки edit.php 54 и 55, сообщаемые браузером).

Похоже, один и тот же код создания сборщика вызывается для на каждой странице, независимо от того, присутствуют поля даты или нет. Страница не должна пытаться создать средство выбора для несуществующего поля!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...