SCRIPT87: Invalid argument
Habe ich eine jquery-Funktion, die funktioniert in allen browser, aber nicht im ie7 und ie9 in compatibily mode.
Das problem ist in dieser Funktion:
$('.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);
});
Der Fehler ist:
SCRIPT87: Ungültiges argument.
jquery.min.js, Zeile 4 Zeichen 23894
Wie kann ich es beheben?
- wie können Sie sicher sein, dass das Problem in dieser Funktion?
- weil der andere funktioniert einwandfrei. Ich habe auch versucht, zu kommentieren, die anderen code und ich bekomme den gleichen Fehler
- Mostlikely den Weg bestimmen Sie
margin_slider
das Problem verursacht. Es muss wieder eineNaN
imparseInt
. Versuchenalert(margin_slider)
vor.animate
und sehen, was es gibt. Seine sehr schwer zu sagen mit den wenigen Informationen. - Und welche Zeile ist die Auslösung der Fehler? Haben Sie einen Blick auf den call-stack.
- Ja das problem ist, dass margin_slider ist Nan. Wie kann ich ein integer?
- Das hängt davon ab, was Sie Durchlaufen.. Debug mehr zu sehen, was man immer wieder für
n_btn
und was erwartet wird. Wennn_btn
gibt einen numerischen string oder eine beliebige Zeichenfolge, beginnend mit der Zahl zurückgeben sollte, Sie sind die Nummer.. aber so wie es scheint, nicht. - n_btn NaN zurück. Ich habe auf eine Anzahl von eine id setzt sich zusammen aus einem Buchstaben, gefolgt von einer Zahl (b12, a43, ..)
- Ok gelöst. Danke!
- Versuchen Sie es mit
.charAt(i)
statt[i]
. Auch Sie könnenvar thisId = this.id
und verwenden Sie dann die var statt$(this).attr('id')
. - Poste bitte wie du es gelöst hast. Das oben geschrieben Kommentare als Antwort. Viel Glück. Wenn das Problem ein anderes war, dann bitte posten, dass als eine Antwort zu.
- Wenn diese Frage beantwortet ist, dann bitte fühlen Sie sich frei, zu akzeptieren, die sich am besten beantworten. Lesen Sie mehr darüber, Wie Sie annehmen Werke
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mostlikely den Weg bestimmen Sie
margin_slider
das Problem verursacht. Es muss wieder eineNaN
imparseInt
.Versuchen
alert(margin_slider)
vor.animate
und sehen, was es gibt.Auch Es hängt davon ab, was Sie Durchlaufen.. Debug mehr zu sehen, was man immer wieder für
n_btn
und was erwartet wird. Wennn_btn
gibt einen numerischen string oder eine beliebige Zeichenfolge, beginnend mit der Zahl zurückgeben sollte, Sie sind die Nummer.. aber so wie es scheint, nicht.Versuchen Sie es mit
.charAt(i)
statt$(this).attr('id')[i]
. Und Sie könnenvar thisId = this.id
und verwenden Sie dann die var statt$(this).attr('id')
Ich lief in dieses problem vor ein paar Tagen.
Falls jemand anderes auch stolpert über dies, das Problem war, dass ich über HTML-button-Elemente, die IE9 - scheint nicht zu wissen, wie Sie zu behandeln. Hinzufügen eines HTML-shim das problem gelöst.