2012-04-30 37 views
2

私はcompatibilyモードですべてのブラウザではなく、IE7とIE9で動作jqueryの機能を持っています。 問題は、この機能である:SCRIPT87:無効な引数

$('.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

どのように問題はこの機能であることを確認することができますか? – mkoryak

+0

他はうまく動作しています。私も他のコードをコメントしようとしたが、同じエラーが発生する – pindol

+5

'margin_slider'が問題を引き起こしていると判断する方法があります。 'parseInt'に' NaN'を返さなければなりません。 '.animate'の前に' alert(margin_slider) 'を実行し、それが何を返すかを見てください。限られた情報で結論づけるのは非常に難しいです。 –

答えて

1

Mostlikelyあなたがmargin_sliderを決定する方法は、問題を引き起こしています。 parseIntNaNを返す必要があります。

.animatealert(margin_slider)を試してみて、それが返すものを参照してください。

また、反復処理の対象によって異なります。n_btnについて何が返されているかをさらに確認してデバッグしてください。 n_btnが数字の文字列を返したり、数字で始まる任意の文字列が数字の場合は返されますが、そうではないようです。

ではなく.charAt(i)$(this).attr('id')[i]を使用してみてください。 var thisId = this.idとし、代わりにvarを使用することができます$(this).attr('id')

1

私は数日前にこの問題に遭遇しました。

誰もこの時につまずく場合、問題は、私はIE9-が処理する方法を知っていないようだHTMLのbutton要素を使用していたということでした。 HTMLシムを追加することで問題は解決しました。