I’m using the jKey jQuery plugin on a current project. It just allows you to easily run a function on a key press. Here’s my function call:
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');
}
});
In IE6 and 7, pressing any other key on the keyboard besides the left or right arrows throws a nasty “Error Message: ‘indexOf’ is null or not an object” error. Is there a way to capture all other key presses and return; on them so as to avoid this?
Actually it’s bug of jKey itself. I’ve found this bug, when tried to use at the project. That was classic problem with looping through array as object:
line 224:
for(y in keySplit[x])at GitHub revisionThe solution is to traverse array as traditional loop:
So u can do it manually or get fixed version of ‘jquery.jkey.js’ from my Google Code revision