我在当前项目中使用jKey jQuery插件。它只是让你可以轻松地按下一个键来运行一个功能。下面是我的函数调用:
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。我发现了这个bug,当我试图在项目中使用。这是将array作为object:
进行循环的典型问题<我> : 224行for(y in keySplit[x])
在 GitHub修订我>
解决方案是像传统的循环一样遍历数组:
for(var i = 0; i < keySplit.length; ++i)
所以你可以手动做,或者从我的谷歌代码修订
而不是仅仅使用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');
}
});