2

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

我该如何解决?

4

2 回答 2

1

您确定的方式margin_slider很可能是导致问题的原因。它必须返回一个NaNin parseInt

alert(margin_slider)之前尝试一下.animate,看看它会返回什么。

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

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

于 2012-04-30T20:58:58.010 回答
1

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

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

于 2012-10-09T15:39:56.263 回答