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

Error: Cannot read property 'blur' of undefined

本文关键字:未定义 模糊 属性 读取 错误      更新时间:2023-09-26

我正在尝试实现wheelColorPicker,在使用高于1.7.1的JQuery版本时,我只遇到了一个问题。(我目前使用的是1.10.2。)

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

未捕获的类型错误:无法读取未定义的属性"blur"

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

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

不工作:

JSFiddle

工作:

JSFiddle

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

$(element).data("events")已在jQuery 1.8中删除。

如有必要,您仍然可以通过$._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之前,如果没有其他代码定义名称为"events"的数据元素,则.data("events")可以用于检索元素的jQuery未记录的内部事件数据结构。此特殊情况已在1.9中删除。没有公共接口来检索这个内部数据结构,而且它仍然没有文档记录。然而,jQueryMigrate插件为依赖它的代码恢复了这种行为