SCRIPT87:参数无效

我有一个jquery函数,适用于所有浏览器,但不是ie7和ie9兼容模式。 问题出在这个函数中:

$('.non-attivo').live('click',function(){ clearInterval(start_slide); n_btn = ""; for(var i=1;i<$(this).attr('id').length; i++) n_btn += $(this).attr('id')[i] + ""; slide_pos = parseInt(n_btn, 10); var margin_slider = slide_pos * 780; $('#immagini').animate({ marginLeft: "-" + margin_slider + "px"}, 500 ); $('.attivo').attr('class', 'non-attivo'); $(this).attr('class', 'attivo'); start_slide = setInterval(rotate, 4000); }); 

错误是:

SCRIPT87:参数无效。

jquery.min.js,第4行23894

我该如何解决?

最有margin_slider是,您确定margin_slider方式导致了问题。 它必须在parseInt返回NaN

.animate之前尝试alert(margin_slider)并查看它返回的内容。

这也取决于你正在迭代什么..调试更多以查看n_btn返回的n_btn和预期的内容。 如果n_btn返回一个数字字符串或任何以数字开头的字符串应该返回你是数字..但似乎没有。

尝试使用.charAt(i)代替$(this).attr('id')[i] 。 你可以var thisId = this.id然后使用var而不是$(this).attr('id')

几天前我遇到了这个问题。

万一其他人也偶然发现这个问题,问题是我使用的是HTML按钮元素,IE9似乎不知道如何处理。 添加HTML填充程序解决了这个问题。