我有一个适用于所有浏览器的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页
我该如何解决?
答案 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填充程序解决了这个问题。