sjb*_*sse 8 jquery ruby-on-rails
我正在使用jquery.event.move在触摸设备上创建移动事件.该脚本在第580行引发错误.
570 // Make jQuery copy touch event properties over to the jQuery event
571 // object, if they are not already listed. But only do the ones we
572 // really need. IE7/8 do not have Array#indexOf(), but nor do they
573 // have touch events, so let's assume we can ignore them.
574 if (typeof Array.prototype.indexOf === 'function') {
575 (function(jQuery, undefined){
576 var props = ["changedTouches", "targetTouches"],
577 l = props.length;
578
579 while (l--) {
580 if (jQuery.event.props.indexOf(props[l]) === -1) {
581 jQuery.event.props.push(props[l]);
582 }
583 }
584 })(jQuery);
585 };
Run Code Online (Sandbox Code Playgroud)
当它到达第580行它会抛出Uncaught TypeError: Cannot read property 'indexOf' of undefined
我理解的方式是jQuery.event.props未定义?默认情况下,jquery中不应该存在此数组吗?我已经在我的rails应用程序中安装了jQuery作为gem(jquery-rails 4.1.1)知道我能做什么吗?
pal*_*aѕн 12
如jquery.event.movegithub 问题页面中提到的jquery版本3或更高版本存在问题:
jQuery 3.0.0打破了jQuery.event.props使用
这发生在jQuery 3.0.0升级后,jQuery.event.props并被jQuery.event.fixHooks删除.更多细节在这里:
突破变化:jQuery.event.props并jQuery.event.fixHooks删除
由于事件属性管理的重组,jQuery的事件处理性能得以提高.主要的改进是jQuery现在只在第一次访问时计算或复制属性,而不是预先计算和复制它们.这是一个非常大的胜利,其属性可能会强制事件处理程序甚至可能不需要的布局.我们知道的最常见的用途是添加指针事件的属性,这已不再必要,因为jQuery 3.0中已经支持这些事件.如果您仍然需要,jQuery Migrate插件可为这些属性提供支持.相关但无证
mouseHooks和keyHooks名单被移除.在定义新API之前,团队有兴趣了解其他用例,因此请随意打开票证.
github问题仍未解决,截至2016年1月8日尚无解决方案.作为替代修复,您可以: -