each()在IE8上不起作用,并给了我一个“;期望应用数组或参数对象”;.如何解决
each() does not work on IE8, and gave me a "apply array or arguments object expected". how to solve it?
我在我的网站上使用bootstrap v2.3.1,但当我在IE8上测试它时,我得到了一个错误
"需要应用数组或参数对象"。
这是引导部分:
enter : function (t)
{
var n = e.fn[this.type].defaults, r = {}, i;
this._options && e.each(this._options, function (e, t)
{
n[e] != t && (r[e] = t);
}, this), i = e(t.currentTarget)[this.type](r).data(this.type);
if (!i.options.delay || !i.options.delay.show) {
return i.show();
}
clearTimeout(this.timeout), i.hoverState = "in", this.timeout = setTimeout(function ()
{
i.hoverState == "in" && i.show()
},
i.options.delay.show)
}
jQuery部分:
each: function( obj, callback, args ) {
var name,
i = 0,
length = obj.length,
isObj = length === undefined || jQuery.isFunction( obj );
if ( args ) {
if ( isObj ) {
for ( name in obj ) {
if ( callback.apply( obj[ name ], args ) === false ) {
break;
}
}
} else {
for ( ; i < length; ) {
if ( callback.apply( obj[ i++ ], args ) === false ) {
break;
}
}
}
当我运行到callback.apply( obj[ name ], args )
时,我得到了错误,
主要问题是
e.each(this._options, function (e, t)
{
n[e] != t && (r[e] = t);
}, this);
在IE8上不起作用,并且发生了"期望应用数组或参数对象"。
有谁能帮我解决这个问题吗?
我通过makeArray()解决了这个问题,如下所示:
each: function( obj, callback, args ) {
var name,
i = 0,
length = obj.length,
isObj = length === undefined || jQuery.isFunction( obj );
if ( args ) {
if ( isObj ) {
for ( name in obj ) {
if ( $.browser.msie && '8.0' == $.browser.version ) {
args = $.makeArray(args);
}
if ( callback.apply( obj[ name ], args ) === false ) {
break;
}
}
} else {
for ( ; i < length; ) {
if ( callback.apply( obj[ i++ ], args ) === false ) {
break;
}
}
}
但是callback.apply(obj[name],$.makeArray(args))也适用于Chrome,但我不确定没关系,如果浏览器是IE8,那么我就这么做。
相关文章:
- 如何使用JavaScript's”;应用“;方法,在数组之前添加一个额外的参数
- 如何在不链接/jquery的情况下使用方法应用css属性数组
- 为测验应用程序洗牌2个以上的数组
- 如何将数组(Google应用程序脚本)返回到HTML侧边栏
- 在数组上应用 parseInt 会产生奇怪的结果
- 如何将数组(数字)加载到谷歌应用脚本 Byte[] 中
- 如何在数组中以ng个重复间隔应用新添加的对象
- 使用Google应用程序脚本将数组传递给客户端函数
- 在搜索应用程序中用JSON数据交换JavaScript数组
- javascript:更改应用到的数组的数组方法列表
- 将jQuery事件函数应用于新的Knockout.js数组元素
- 如何将函数应用于两个数组的第 n 个元素(数组的数组)
- 将 breeze 谓词应用于可观察数组中的数据
- 本地存储的 json 数组正在打印,但来自 json 的值在 cordova 应用程序中给出未定义
- 如何在数组对象上应用每个方法
- 如何将数组应用于视图
- Openlayers 3,将特征数组应用于矢量结果getId()不是一个函数
- 如何在$.when的回调中获得值数组.应用(承诺)
- 随机颜色从数组应用到页面上的元素
- 对For循环中的函数数组应用onClick(每次单击按钮时执行的每个函数)