错误:无法读取未定义的属性“模糊”

时间:2015-12-15 22:28:26

标签: javascript jquery

我正在尝试实施wheelColorPicker,当我使用1.7.1之后的JQuery版本时,我想出了的问题。 (我目前正在使用1.10.2。)

当我使用更高版本并移动任何滑块,然后停止移动它(mouseUp)时,colorPicker不会注册mouseUp,因此继续移动滑块(或拖动器)。移动时我也会收到以下错误:

  

未捕获的TypeError:无法读取未定义的属性'blur'

我认为我必须改变的主要事情是,事件如何解开。

var blurEvents = $input.data('events').blur;

无效:

JSFiddle

工作:

JSFiddle

(我无法使用带有代码片段的外部文件,问题是有多少个字符的限制。这就是为什么我没有包含代码片段。)

1 个答案:

答案 0 :(得分:1)

在jQuery 1.8中删除了

$(element).data("events")

如有必要,您仍然可以通过$._data(element, "events")访问它,虽然这不是官方支持的,并且可以随时修改或删除行为(正如您所见)。

http://blog.jquery.com/2012/08/09/jquery-1-8-released/

  

$(element).data(“events”):在1.6版本中,jQuery将其内部数据与用户数据分开,以防止名称冲突。但是,有些人正在使用内部未记录的“事件”数据结构,因此我们仍然可以通过.data()检索它。这在1.8中已被删除,但您仍然可以通过$._data(element, "events")获取事件数据以进行调试。请注意,这不是受支持的公共接口;实际的数据结构可能会因版本不同而发生变化。

从jQuery 1.9开始,似乎不支持检索此数据的公共接口:

https://jquery.com/upgrade-guide/1.9/

  

在1.9之前,.data("events")可用于检索jQuery的未记录的内部事件数据结构,如果没有其他代码定义了名称为" events" 。这个特例已在1.9中删除。没有公共接口来检索此内部数据结构,并且它仍未记录。但是,jQuery Migrate插件会针对依赖于它的代码恢复此行为。