IEK / 7中的jKey jQuery插件错误,试图在按下任何未使用的键时运行。 怎么打?
我在当前项目中使用jKey jQuery插件。 它只允许您在按键上轻松运行function。 这是我的函数调用:
jQuery(document).jkey('left, right',function(key){ if(key == 'left'){ if (elementIndex == 0) { return; } question_nav(jQuery('.question-fieldset-active'), 'prev'); } else { if ((elementIndex + 1) == jQuery('.question-fieldset').length) { return; } question_nav(jQuery('.question-fieldset-active'), 'next'); } });
在IE6和7中,除了左箭头或右箭头之外,按键盘上的任何其他键都会引发令人讨厌的“错误消息:’indexOf’为null或不是对象”错误。 有没有办法捕获所有其他按键并返回; 在他们身上以避免这个?
实际上这是jKey本身的错误。 我试图在项目中使用时发现了这个bug。 这是循环数组作为对象的经典问题:
第224行 : GitHub修订版中的 for(y in keySplit[x])
解决方案是将数组作为传统循环遍历:
for(var i = 0; i < keySplit.length; ++i)
所以你可以手动完成它或从我的谷歌代码修订版获得'jquery.jkey.js'的固定版本
而不是只使用else
条件检查key == 'right'
,这可能会帮助你。
jQuery(document).jkey('left, right',function(key){ if(key == 'left'){ if (elementIndex == 0) { return; } question_nav(jQuery('.question-fieldset-active'), 'prev'); } else if(key == 'right') { if ((elementIndex + 1) == jQuery('.question-fieldset').length) { return; } question_nav(jQuery('.question-fieldset-active'), 'next'); } });