【问题标题】:Override jQuery UI DatePicker _generate HTML Function覆盖 jQuery UI DatePicker _generate HTML 函数
【发布时间】:2011-05-22 01:35:33
【问题描述】:

在 jQuery UI 1.7 中,我成功地覆盖了 datepicker._generateHTML 函数,该函数以以下形式运行脚本:

jQuery.datepicker._generateHTML = function(inst) {
  ...revised code...
};

当我尝试使用相同的方法升级到版本 1.8 时,我遇到了一个问题。 1.8 版添加了一个 datepicker 闭包范围变量dpuuid,在新版本的“...修订代码...”中引用。 datepicker._generateHTML 现在以 dpuuid is not defined' error 失败。

我对 Javascript 还很陌生,无法理解该语言的所有微妙方面。所以我的第一个问题是:“引用闭包范围变量的函数是否可以被覆盖并仍然访问原始闭包范围?”

【问题讨论】:

  • 默认实现做了很多我不需要的事情——我基本上是在使用挂历功能。我替换 _generateHTML 以强制显示 6 行、不可选择的日期和其他限制。
  • @claytoncarney:您可以随时添加您的评论/解决方案作为答案并接受它:)
  • 我试图这样做,但是我收到一条错误消息,指出新用户必须等待 8 小时才能回答他们自己的问题。去图...
  • 想过,但一直没有找到好的插件教程。
  • 我刚刚在这里发布了一个答案:stackoverflow.com/a/22509190/87015

标签: jquery-ui jquery-ui-datepicker


【解决方案1】:

我在 Thomas 对 jQuery DatePicker how to disable auto day selection while browsing calendar? 的回答中找到了答案

将以下内容添加到我的“...修订后的代码...”的顶部:

  if (!inst.dpuuid) {
    for (attr in window) {
      if(/^DP_jQuery_/.test(attr)) {
        inst.dpuuid = attr.replace(/^DP_jQuery_([0-9]+)/, '$1');
      }
    }
  }
  var dpuuid = inst.dpuuid;

消除了dpuuid is not defined' error。我在 FireBug 中看到闭包范围从窗口对象可见,但不知道如何从中提取值。

谢谢托马斯!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-27
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-26
    • 2011-05-31
    相关资源
    最近更新 更多