2011-12-28 73 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,而是它在自定義插件中被調用的方式。交換內嵌'