我们的一个开发人员通过一个横幅旋转器,虽然它在NOT IE中正常工作,IE在第30行抛出一个错误(在下面标有“***** ERROR ON NELINE LINE”)。我可以不对$$('。banner')进行排序吗?
错误是: '对象不支持此属性或方法'
使用Prototype 1.6.0.3
function changeBanners() {
// banners are now sorted by their z index so that
// the ones most in front should be most on top in the DOM
// ***** ERROR ON NEXT LINE
banners = $$('.banner').sort(function (a,b){
_a = parseInt(a.style.zIndex);
_b = parseInt(b.style.zIndex);
return _a < _b ? 1 : _a > _b ? -1 : 0;
});
// increment z index on all of the banners
Element.extend(banners);
banners.each( function (banner){
Element.extend(banner);
banner.style.zIndex = parseInt(banner.style.zIndex) + 1;
});
// move the first banner to be the last
first_banner = banners.shift();
banners.push(first_banner);
// set it invisible
Effect.toggle( first_banner.id , 'appear' , {
duration: 2.0,
afterFinish: function(){
first_banner.style.zIndex = 0; // update its z index so that it is at the end in the DOM also
first_banner.show(); // make it reappear so that when the one in front of it disappears, it will show through
}
});
};
答案 0 :(得分:1)
*叹*
毕竟,我不记得在JS中声明变量
更改:
banners = $$('.banner').sort(function (a,b){
_a = parseInt(a.style.zIndex);
_b = parseInt(b.style.zIndex);
return _a < _b ? 1 : _a > _b ? -1 : 0;
});
为:
var banners = $$('.banner').sort(function (a,b){
_a = parseInt(a.style.zIndex);
_b = parseInt(b.style.zIndex);
return _a < _b ? 1 : _a > _b ? -1 : 0;
});
工作正常。