gpt4 book ai didi

javascript - jQuery 1.9.0 破坏了 $.attrFn 对象

转载 作者:数据小太阳 更新时间:2023-10-29 04:03:11 26 4
gpt4 key购买 nike

我编写了一个有用的“移动”事件库 (available here)。它本质上统一了触摸事件,以便可以将单个事件绑定(bind)到一个元素,并且无论用户使用什么设备(即移动设备或桌面设备),它都会触发。

代码运行良好,但在调试用户问题时,我注意到在使用 jQuery 1.9.0 时该库不再起作用(所有以前版本的 jQuery 都不会导致问题)。

有问题的代码如下:

// Add Event shortcuts:
$.each(('tapstart tapend tap singletap doubletap taphold swipe swipeup swiperight swipedown swipeleft scrollstart scrollend orientationchange').split(' '), function(i, name) {
$.fn[name] = function(fn)
{
return fn ? this.bind(name, fn) : this.trigger(name);
};
$.attrFn[name] = true;
});

错误 Uncaught TypeError: Cannot set property 'tapstart' of undefined 在下面一行:

$.attrFn[name] = true;

谁能指出我为此做出修复的方向?

我整理了 2 个 jsFiddle 演示来说明问题:

如果我定义 $.attrFn,这会修复 swipe* 事件的代码,但会导致其他问题,例如 tap双击。例如,绑定(bind) tap 现在会产生错误:Uncaught TypeError: Cannot call method 'call' of undefined,有问题的行是:

$.event.handle.call( obj, event );

再次提供两个jsFiddle供引用:

最佳答案

该对象 (.attrFn) 在 1.8 中只是一个 stub ;它在 1.9 中消失了。

如果您的代码在 1.8 中有效,您应该可以添加

$.attrFn = $.attrFn || {};

在某个地方修复它。

关于javascript - jQuery 1.9.0 破坏了 $.attrFn 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14384967/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com