jQuery, IE, неверный аргумент - PullRequest
0 голосов
/ 29 июля 2010

Я кодировал простую скользящую галерею с помощью jQuery.Это узкий контейнер с широкой таблицей внутри, который меняет свое свойство ' left ' через .animate ()

Прекрасно работает в Firefox, Safari и IE8.Однако у меня проблема с Internet Explorer 7 и ниже.

Появляется сообщение об ошибке «Ошибка скрипта.строка: 4619. char: 4. error: неверный аргумент.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();
}

1 Ответ

2 голосов
/ 30 июля 2010

Проблема в том, что IE7- возвращает auto для $('.imagenesWrapper table tr td').css('marginRight')

Таким образом, parseFloat() возвращает NAN (, а не число ), и после этого все происходит не так ..

проверка по причине ..

...