& # 39;长度# 39;在使用jQuery's inArray时,为null或不是IE中的对象
'length' is null or not an object in IE when using jQuery's inArray
我正在使用jKey,但在IE8中我得到这个错误:
'length' is null or not an object
当我按某些键时。似乎每当我按下一个键,还不存在(就像如果我从来没有设置任何a
它有错误信息)。但是,我确实为enter
设置了一个关键命令,但它仍然在做。
导致错误的代码是:
if($.inArray(e.keyCode,keySplit[x]) > -1){
// Initiate the active variable
var active = 'unchecked';
// All the individual keys in the combo with the keys that are currently being pressed
for(y in keySplit[x]) {
if(active != false) {
if($.inArray(keySplit[x][y], activeKeys) > -1){
active = true;
}
else {
active = false;
}
}
}
错误发生在第一行。知道keySplit[x]
返回typeof
number
当不存在或如果快捷键只有一个键,我添加:
if(typeof(keySplit[x]) == 'number'){ keySplit[x] = [keySplit[x]]; }
在上面代码块的正上方。
之后,它仍然在Chrome和FF中工作,但仍然不能在IE中工作。我也试过:
if(typeof(keySplit[x]) == 'number'){ keySplit[x] = new Array(keySplit[x]); }
if(typeof(keySplit[x]) == 'number'){ keySplit[x] = [keySplit[x].toString()]; }
if(typeof(keySplit[x]) == 'number'){ keySplit[x] = new Object(keySplit[x]); }
但是没有一个成功。导致错误的jQuery代码是:
inArray: function( elem, array ) {
if ( indexOf ) {
return indexOf.call( array, elem );
}
for ( var i = 0, length = array.length; i < length; i++ ) {
if ( array[ i ] === elem ) {
return i;
}
}
return -1;
},
我认为,您的问题与另一个jKey错误有关。请检查我的答案 -你应该使用数组像遍历在你的实现,而不是关联。
相关文章:
- 谷歌地图API-“;toGeoJson”;返回几何体为null的对象
- 验证对象是否为null Javascript/Angularjs
- 对象为null或IE9中存在未定义错误
- 如何计算一个对象中五个属性中有多少是非null的
- Microsoft JScript运行时错误:无法获取属性'的值;样式':对象为null或未定义
- javascript对象显示为null,但object.properties返回数据
- global.getElementById('..')为null或不是对象
- IE8错误:为null或不是对象,但仍然可以跟踪/控制台注销
- AJAX请求中的JSON对象为Null或空
- Highcharts无法设置属性'的值;要点':对象为null或未定义
- ui.selectmenu投掷'this.newelement.0'为null或不是对象
- 添加到序列化数组中的复杂对象在服务器端始终为 null
- 什么是 ClojureScript 类似地将不存在的对象值设置为 JavaScript 中的 null
- 最大查询返回带有sequelise.js的null对象
- 从JSON对象中删除jQuery和null对象
- 从客户端到服务器的SocketIO回调没有'不起作用(改为null对象)
- 迭代react元素中的undefined/null对象
- “Interiting"From null对象似乎不会影响性能
- Null对象中属性默认值的赋值
- 在js中捕获null对象