我用jQuery编写了一个简单的滑动图库。它是一个狭窄的容器,里面有一个宽桌子,通过.animate()
改变它的'左'属性在Firefox,Safari和IE8上精彩地工作。但是我遇到了Internet Explorer 7及以下版本的问题。
弹出一条消息错误,提示'脚本错误。 line:4619。char:4。error:无效的参数。网址:http://www.imagina.com.uy/bentancorleborgne/?page_id=2
该行只能在jQuery.js文件中。因为它是唯一具有6k +行的文件。
所以我很想知道。到底是怎么回事!!
当我按箭头为图库设置动画时,只会弹出错误。所以我要离开脚本的代码,以防你从那里得到一些线索。
任何帮助或线索都会得到充分的帮助。在此先感谢!!
$(document).ready(function() {
var tablaWidth = parseFloat($('.imagenesWrapper table').width());
var tdWidth = parseFloat( $('.imagenesWrapper table tr td').outerWidth() ) + parseFloat( $('.imagenesWrapper table tr td').css('marginRight') );
var cantCeldas = tablaWidth / tdWidth - 1;
var posActual = 0;
var leftCSS = 1;
if(cantCeldas==0) {
$('#leftArrow').hide();
$('#rightArrow').hide();
}
else
$('#rightArrow').show();
$('#rightArrow').click(function() {
if(leftCSS < tablaWidth) {
posActual += 1;
leftCSS = moverTabla(posActual, cantCeldas, tdWidth);
}
});
$('#leftArrow').click(function() {
if(posActual > 0) {
posActual -= 1;
leftCSS = moverTabla(posActual, cantCeldas, tdWidth);
}
});
});
function moverTabla(pos, cantidad, tdWidth) {
var leftCSS = pos * tdWidth;
$('.imagenesWrapper table').animate( {left: '-' + leftCSS +'px'}, 'slow');
mostrarOcultarFlechas(pos, cantidad);
return leftCSS;
}
function mostrarOcultarFlechas(pos, cantidad) {
//mostrar-ocultar flecha izquierda
if(pos==0)
$('#leftArrow').hide();
else if($('#leftArrow').css('display') == 'none')
$('#leftArrow').show();
//mostrar-ocultar flecha derecha
if(pos==cantidad)
$('#rightArrow').hide();
else if($('#rightArrow').css('display') == 'none')
$('#rightArrow').show();
}
答案 0 :(得分:2)
问题是 IE7 - 会为auto
$('.imagenesWrapper table tr td').css('marginRight')
所以parseFloat()
会返回NAN
(不是数字),之后一切都会失败..
检查原因..