2010-07-29 6 views
0

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

Прекрасно работает на 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

Я могу подтвердить, что у меня есть никогда не видел функцию с именем «mostrarOcultarFlechas». : D –

+0

Google говорит, что это означает «Show-Hide left arrow» http://translate.google.com/#auto|en|mostrar-ocultar%20flecha%20izquierda%0A – NotMe

+0

lol xD Да имена функций и некоторые переменные находятся на испанском языке , Если у вас есть трудное время, я могу перевести код. Дай мне знать. – sanchy

ответ

2

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

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

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

+0

Он прав! попробуйте установить его явно, если сможете, и это исправит! –

+0

Я ЛЮБЛЮ ТЕБЯ ЧЕЛОВЕКА: D именно это. как вы поняли? – sanchy

+0

ps: я просто изменил margin-right на padding-right на CSS. Поэтому мне не нужно было устанавливать его специально и просто использовать .outerWidth(). – sanchy

Смежные вопросы