2011-12-28 72 views
0

我正在使用为我定制开发的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' }); 
     } 

谷歌浏览器的控制台引发以下错误

有没有人有如何调试的建议?

回答

1

问题是,页面试图为不存在的字段创建选择器。 问题的原因不在anytime.js中,而是在内联脚本中(具体来说,由浏览器报告的edit.php第54和55行)。

似乎每页面都会调用相同的选取器创建代码,无论日期字段是否存在。该页面不应该尝试为不存在的字段创建选择器!

+0

原来,它不是anytime.js,而是它在自定义插件中被调用的方式。交换内嵌'