2012-01-25 77 views
-2

動畫(圖像更改)不會停留在onmouseout事件上。爲什麼?JavaScript,縮略圖()

的JavaScript:

function thumbnail (type, start, i, m, id, begin, end) 
{ 
    if (type == 1) 
    { 
     document.getElementById(id).src = begin + id + i + end; 

     if (i == m + 1) 
     { 
      document.getElementById(id).src = begin + id + end; 
      i = 2; 
     } 
     else 
     { 
      i++; 
     } 

     setTimeout("thumbnail(1, "+start+", "+i+", "+m+", '"+id+"', '"+begin+"', '"+end+"');", 1000); 
    } 

    if (type == 2) 
    { 
     document.getElementById(id).src = begin + id + end; 
    } 
} 

HTML:

<img id="aaa" src="http://example.com/file/aaa.png" width="160" height="120" onmouseover="thumbnail(1,2,2,9,'aaa','http://example.com/file/','.png');" onmouseout="thumbnail(2,2,2,9,'aaa','http://example.com/file/','.png');" />

圖片:

aaa.png,aaa2.png,...,aaa9.png

回答

0

嘗試是這樣的:

var delay; 

function thumbnail (type, start, i, m, id, begin, end){ 
    if (type == 1){ 
    document.getElementById(id).src = begin + id + i + end; 
    if (i == m + 1){ 
     document.getElementById(id).src = begin + id + end; 
     i = 2; 
    } 
    else{ 
     i++; 
    } 
    if(delay) clearTimeout('delay'); 
    delay = setTimeout("thumbnail(1, "+start+", "+i+", "+m+", '"+id+"', '"+begin+"', '"+end+"');", 1000); 
    } 
    if (type == 2){ 
    document.getElementById(id).src = begin + id + end; 
    clearTimeout('delay'); 
    } 
} 
0

因爲你遞歸地調用setTimeout並且沒有條件永遠停止它。

+0

是的,但如何的onmouseout時停止嗎? – csillagharcos