[英]jKey jQuery plugin errors in IE6/7, attempting to run whenever any un-used key is pressed. How to combat?
我在当前项目中使用 jKey jQuery 插件。 它只允许您在按键上轻松运行 function。 这是我的 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 本身的错误。 我在项目中尝试使用时发现了这个错误。 这是将数组循环为 object 的经典问题:
: for(y in keySplit[x])
at GitHub revision: for(y in keySplit[x])
at GitHub 修订版
解决方案是将数组作为传统循环遍历:
for(var i = 0; i < keySplit.length; ++i)
所以你可以手动完成或从我的Google 代码修订版中获取“jquery.jkey.js”的固定版本
而不是仅仅对key == 'right'
使用else
条件检查,这可能会对您有所帮助。
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');
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.