【问题标题】:jQuery, IE and invalid argumentjQuery、IE 和无效参数
【发布时间】:2010-07-28 19:36:52
【问题描述】:

编辑:

在这里。好吧,问题出在 jQuery.JS 档案中。我刚刚下载了最后一个,解压后,错误变成了第4619行第4字符。

我去了那条线,那里有一个“}”符号哈哈……我有没有提到我讨厌 Internet Explorer?

我不知道如何解决这个问题,这似乎是框架内的一个错误:S


/编辑

你好! -我讨厌 Internet Explorer :D-

我用 jQuery 制作了一个幻灯片来为一个小图片库制作动画。

http://www.imagina.com.uy/bentancorleborgne/?page_id=2

在 Firefox、Safari 和 IE8 上运行良好。

但是在 IE7 和之前的版本中会报错。弹出一条消息说:

脚本错误。

行:20

字符:31759

错误:参数无效

网址:http-://www-.imagina.com.uy/bentancorleborgne/?page_id=2

我在该页面上运行了几个脚本,但是由于当我尝试滑动图库时弹出错误,我猜测错误来自此代码:

// JavaScript Document
$(document).ready(function() {
 var tablaWidth = parseFloat($('.imagenesWrapper table').css('width'), 10);
 var tdWidth = parseFloat($('.imagenesWrapper table tr td').css('width'), 10) + parseFloat($('.imagenesWrapper table tr td').css('margin-right'), 10);
 var cantCeldas = tablaWidth / tdWidth - 1;
 var posActual = 0;
 var leftCSS = 1;

 if(cantCeldas==1) {
     $('#leftArrow').hide();
     $('#rightArrow').hide();
 }else {
     $('#rightArrow').show();
 }

 $('#rightArrow').click(function() {
     if(leftCSS < tablaWidth) {
         posActual += 1;
         /* LINE 20 OF THE CODE ********************************************/ 
         leftCSS = moverTabla(posActual, cantCeldas, tdWidth); //moverTabla function (moveTable in english) returns the leftCSS value because it's needed on this function for the 'if'
     }
 });
 $('#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();
}

我不知道发生了什么。有人能提供一些帮助或线索吗?

提前非常感谢

【问题讨论】:

  • 你确定这段代码是错误的吗? IE 给您的错误消息似乎与此代码无关。
  • 我只在 IE7 中收到此错误。也许是时候将 jQuery 更新到最新版本了。
  • 鉴于在线位置,我怀疑传递给 jQuery 的某些内容是无效的。换成非最小化的版本调试(看看它在哪一行和相关代码:)
  • 我可能错了,但是 parseFloat($('.imagenesWrapper table').css('width'), 10); , parseFloat 接受字符串,最后的 ", 10" 可能比 parseFloat($('.imagenesWrapper table').css('width')).toFixed(10); 更好?
  • 最后的 10 指定 parseFloat 我想要的数字是十进制的。我在“learn jquery 1.3”一书中读过它=/错误似乎在 jquery 文件中

标签: jquery internet-explorer invalid-argument


【解决方案1】:

我看到您正在计算一些值来获取 leftCSS 值。那总是一个整数吗?如果您尝试使用小数(即animate({left: 4.3102918px}))进行动画处理,IE7 可能会不高兴。只是一个想法。考虑四舍五入。

【讨论】:

  • 嘿,marko,这可能与此有关。我会看看它。感谢您的想法。
  • 嘿,又是我。不是这样的。 宽度始终为 300px, 宽度始终为 300px * 与
    一样多。因此,“左”属性始终是 300.. 600、900、1200、1500 的倍数。但是,在制作动画时,左值确实会得到十进制数。知道如何解决吗?因为我无法控制动画期间应用于“左”的值。
【解决方案2】:

在这里。好吧,问题出在 jQuery 存档上。我刚刚下载了最后一个,未压缩,行从20变成了4619字符4。

我去了那条线,那里有一个“}”符号哈哈……我有没有提到我讨厌 Internet Explorer?

【讨论】:

  • 请添加 cmets 或编辑原始问题,而不是添加注释作为答案,以免您的更新被其他答案推倒。
  • 指示的行并不总是 js 文件中的行。如果我没记错的话,它是渲染代码中的行和字符。尝试禁用每个脚本并逐个启用它们。检查它何时给出错误
  • sry 马克,感谢您的评论。 Nealv,好的,但是,唯一可能包含 4000 行的文件是我刚刚从 jquery.com 下载的 jquery.js 所以这是一个错误.. 我猜:S
猜你喜欢
  • 1970-01-01
  • 2012-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-01
  • 2019-12-10
相关资源
最近更新 更多