Ter*_*ion 9 javascript jquery internet-explorer internet-explorer-8
我面临一个奇怪的问题,找不到任何解决方案.
jQuery(任何版本,从1.7.*到1.10.*)在Internet Explorer 8中失败.所有插件(来自bootstrap)和jQuery库都出现错误:
Object不支持此属性或方法

挖掘插件代码,如下所示:
$.fn.alert = function (option) {
return this.each(function () {
//...
})
}
Run Code Online (Sandbox Code Playgroud)
显示问题:此关键字指向HTMLDomObject,而不是jQuery对象.什么会导致这种奇怪的错误?
只有在Internet Explorer 8中!
我找到了一段代码,导致了这个问题。我仍然不明白,它如何以这种方式破坏所有 jQuery 以及为什么它完全破坏(同样,它在除 Internet Explorer 8 之外的所有浏览器中都能完美运行),但是将 for in迭代器更改为 $.each()使错误消失。
for (var i in $postsPortions) {
var $p = $($postsPortions.get(i));
var offset = $p.offset();
if (offset && Math.abs(offset.top - scrollTop) < 100) {
var year = $p.data('year');
var season = $p.data('season');
window.location.hash = year + '/' + season;
$milestones.removeClass('active');
$milestones.filter('.year_' + year + '.season_' + season).addClass('active');
return;
}
if (i >= ($postsPortions.length - 1)) return;
}
Run Code Online (Sandbox Code Playgroud)