繁体   English   中英

IE6/7 中的 jKey jQuery 插件错误,每当按下任何未使用的键时都会尝试运行。 如何战斗?

[英]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 revisionfor(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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM