【问题标题】:jquery UI date range picker error "Cannot read "property" left of null"jquery UI 日期范围选择器错误“无法读取 null 左侧的“属性””
【发布时间】:2011-11-10 18:58:26
【问题描述】:

我正在为 rails 3.1 使用 jquery ui 日期范围选择器。我已经设法让它工作,但是当我尝试在任何视图文件中使用任何 jquery 时,我得到这个错误(从控制台查看),上面写着“daterangepicker.jQuery.js:62 Uncaught TypeError: Cannot read property'左'为空"。

var rangeInput = jQuery(this);

var options = jQuery.extend({
...
posX: rangeInput.offset().left,
...
})

有问题的行是:

posX: rangeInput.offset().left, // x position

但是,我的理论是问题的根源源于一开始,其中 rangeInput 在这一行中定义:

var rangeInput = jQuery(this);

也许这是在我实际选择日期之前调用的,这就是错误出现的原因以及为什么它似乎阻止了我的 jquery 运行?感谢您的帮助。

【问题讨论】:

  • JQuery.extend() 似乎没有任何“目标”参数。这仅仅是因为您截断了代码吗?
  • 另外,什么代码在调用这个代码段?在这种情况下 $(this) 是什么?
  • Sorry Dave,$(this) 是指我假设我的文本框运行插件。另一个奇怪的问题是,如果在视图上使用插件,错误就会消失。直到最近才注意到这一点。但这意味着我要在页面上使用 jquery,我必须在 daterangepicker 中包含一个隐藏标签...
  • 好的,那么,您可以添加包含此代码段的代码,这样可以清楚地说明 $(this) 是什么? (我同意下面的解决方案,听起来 $(this) 是空的,这会导致 offset() 为空。)
  • @Dave 感谢您的帮助。下面的解决方案是正确的,它是空的。

标签: jquery ruby-on-rails jquery-ui


【解决方案1】:

尝试记录rangeInput 的值以查看它是否为空的jQuery 对象。这是有道理的,因为jQuery().offset().left 会抛出你得到的错误。

【讨论】:

  • 感谢您的帮助。你是对的。我没想到只是检查它是否为空,现在它是一个简单的 if else 语句。再次感谢!
猜你喜欢
  • 1970-01-01
  • 2011-04-19
  • 2018-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多