Anytime.js Javascript Datepicker投掷控制台错误
问题描述:
我正在使用为我定制开发的WordPress插件的anytime.js datepicker库。我这样说是因为我不是原始开发人员,而且我害怕剔除库并替换它,以免它意味着替换对该库独有的函数的大量调用。Anytime.js Javascript Datepicker投掷控制台错误
你可以在这里看到库:http://www.ama3.com/anytime/
不幸的是,库被打破的WordPress后台的一些关键功能的3.3版本。我已经证实,禁用图书馆可以完全解决问题。根据控制台anytime.js
线3032 var left = off.left
是问题的代码线 -
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
在下面的行(3039 3027)
:
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' });
}
谷歌浏览器的控制台引发以下错误
有没有人有如何调试的建议?
答
问题是,页面试图为不存在的字段创建选择器。 问题的原因不在anytime.js中,而是在内联脚本中(具体来说,由浏览器报告的edit.php第54和55行)。
似乎每页面都会调用相同的选取器创建代码,无论日期字段是否存在。该页面不应该尝试为不存在的字段创建选择器!
原来,它不是anytime.js,而是它在自定义插件中被调用的方式。交换内嵌'