jQuery,IE,无效的参数

时间:2010-07-29 19:52:56

标签: jquery internet-explorer invalid-argument

我用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();
}

1 个答案:

答案 0 :(得分:2)

问题是 IE7 - 会为auto

返回$('.imagenesWrapper table tr td').css('marginRight')

所以parseFloat()会返回NAN不是数字),之后一切都会失败..

检查原因..