2016-11-28 5 views
0

ich dies auf eine Funktion auf das Bild des onload-Event mit setInterval aufgerufen senden möchten, aber es führt den folgenden Fehler:Wie diesen Wert weitergeben onload Funktion setInterval

Uncaught TypeError: Cannot read property 'attr' of undefined(…)

<img src="image.jpg" id="24" onload="var sel =this;setInterval(function(sel){calllogin(sel)},20000);" 
<script> 
function calllogin(sel){ 
    var id = sel.attr("id"); 
    console.log('calling calllogin function',id); 
} 
</script> 

Bitte sagen Sie mir, wie passieren Dies. Vielen Dank im Voraus

+0

Entfernen 'sel' von' setInterval' Callback-Funktion Argument dh 'setInterval (function() {calllogin (sel)}, 20000)' – Satpal

+0

Darüber hinaus sind Sie nicht eine ''} Ihre Funktion schließen 'calllogin' – Roberrrt

+0

@Satpal Ich habe es entfernt, jetzt zeigt es den folgenden Fehler; Uncaught TypeError: sel.attr ist keine Funktion (...) – scriptkiddie1

Antwort

1

Sie müssen setInterval(function(sel), sel aus dem Funktionsparameter entfernen.

onload="var sel =this; setInterval(function(){ calllogin(sel) },20000);" 

Oder geben Sie einfach die sel als dritter Parameter an setInterval

setInterval(function(sel){calllogin(sel)},20000, sel); 

und die sel innerhalb Rückruf wird kein Jquery-Objekt sein. Es wird ein einfaches Elementobjekt sein. Sie müssen es konvertieren, bevor Sie eine Jquery-Funktion verwenden.

function calllogin(sel) { 
    var id = $(sel).attr("id"); 
    console.log('calling calllogin function',id); 
} 
+1

Gute Erklärung bro ... danke – scriptkiddie1

+1

@ scriptkiddie1, Überlegen Sie, die Antwort zu akzeptieren. Siehe [Wie funktioniert die Annahme einer Antwort?] (Http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – Satpal

+0

@Satpal bro. Ich habe die Antwort akzeptiert und aufgewertet. – scriptkiddie1

Verwandte Themen