SCRIPT87:参数无效

时间:2012-04-30 20:37:18

标签: jquery jquery-animate

我有一个适用于所有浏览器的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页

我该如何解决?

2 个答案:

答案 0 :(得分:1)

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

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

此外,它取决于您正在迭代的内容。调试更多以查看n_btn返回的内容以及预期内容。如果n_btn返回一个数字字符串或任何以数字开头的字符串应该返回你的数字..但似乎没有。

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

答案 1 :(得分:1)

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

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