2016-11-28 49 views
0

的setInterval我想給這對圖像的onload事件中使用的setInterval調用的函數,但它引發以下錯誤:如何通過這個值對的onload功能

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> 

請告訴我如何傳遞這個。 在此先感謝

+0

刪除''從功能setInterval'回調參數即'的setInterval sel'(函數(){calllogin(SEL)},20000)' – Satpal

+0

此外,你錯過了一個'}'關閉您的功能'calllogin' – Roberrrt

+0

@Satpal我刪除它,現在它顯示以下錯誤;遺漏的類型錯誤:sel.attr不是一個函數(...) – scriptkiddie1

回答

1

您必須從函數參數中刪除setInterval(function(sel),sel

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

或者只是通過sel作爲第三個參數的setInterval

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

sel內回調將不會是一個jQuery對象。它將是一個簡單的元素對象。你必須在使用Jquery的函數之前將其轉換。

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

好解釋的兄弟...感謝 – scriptkiddie1

+1

@ scriptkiddie1,考慮接受的答案。參見[如何接受答案的工作?](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – Satpal

+0

@Satpal兄弟。我接受並高舉了答案。 – scriptkiddie1