0

シンプルなスライディングギャラリーをjQueryでコーディングしました。これは、 .animate()を介して' left 'プロパティを変更する、幅の広いテーブルを内部に持つ狭いコンテナです。

Firefox、Safari、IE8で美しく動作します。ただし、InternetExplorer7以下で問題が発生しています。

'スクリプトエラーを示すメッセージエラーがポップアップ表示されます。行:4619。文字:4。エラー:引数が無効です。url: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();
}
4

1 に答える 1

2

問題は、IE7-auto$('.imagenesWrapper table tr td').css('marginRight')

したがって、(数値ではなくparseFloat())戻り値が返され、その後はすべて失敗します。NAN

理由を確認する..

于 2010-07-29T20:29:42.380 に答える