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 eine NaN im parseInt. Versuchen alert(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. Wenn n_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önnen var 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

InformationsquelleAutor pindol | 2012-04-30
Schreibe einen Kommentar