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
The solution is to traverse array as traditional loop:
for(var i = 0; i < keySplit.length; ++i)
So u can do it manually or get fixed version of 'jquery.jkey.js' from my 版中获取“jquery.jkey.js”的固定版本
Instead of just using else
condition check for key == 'right'
as well that might help you.
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');
}
});
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.