2013-10-09 23 views
0

藉口英語不好 我用您的幫助:)MouseHover圖像的jQuery

我有一個問題翻譯 和TY, 腳本是罰款我想要 問題,一旦當鼠標離開image2-3-4 保持(2-3-4) 留下的圖像,而不是爲初始

<script type="text/javascript"> 
    var changetimer; 

    function change (id) { 
     clearInterval (changetimer); 
     function swap() { 
      if (id.src.match (" images/img1.jpg ")) { = id.src id.src.replace (" images/img1.jpg ", " images/img2.jpg ") return false; } 
      if (id.src.match (" images/img2.jpg ")) { = id.src id.src.replace (" images/img2.jpg ", " images/img3.jpg ") return false; } 
      if (id.src.match (" images/img3.jpg ")) { = id.src id.src.replace (" images/img3.jpg ", " images/img4.jpg ") return false; } 
      if (id.src.match (" images/img4.jpg ")) { = id.src id.src.replace (" images/img4.jpg ", " images/img1.jpg ") return false; } 

     } 
     changetimer = setInterval (Swap , 1500) ; 
    } 

    window.onload = function() { 
     var images = document.getElementsByTagName('img'); 
     for (var i = 0; i < images.length ; i + +) { 
      images[i]. onmouseover = function (evt) { change (this) ;} 
      images[i]. onmouseout = function (evt) { clearInterval (changetimer); } 
     } 
    } 
    </script> 
+1

您是否可以嘗試更詳細地解釋您實際要完成的工作? – Nunners

+0

如果我明白你在做什麼正確,問題是你的'onmouseout'事件不會改變圖像。圖像被「onmouseover」改變,然後從未被告知返回到原來的狀態。 –

+0

@IanMcLaird:完全:) – Lsnight

回答

0

,而不必使用if語句這麼多,你可能只是寫像這樣:

var array = []; 
var images = document.getElementsByTagName (' img '); 

for (var i=0;i<images.length;i++) { 
    array[i] = i; 
    images[i].onmouseover = function() { 
     var timer = setInterval(function(){ 
      array[i]+= 1; 
      this.src="images/img"+array[i]+".jpg"; 
     },1500); 
     this.onmouseout = function() { clearInterval (timer); this.onmouseout=null;} 
    } 
} 
0

你需要做的就是改變這一行:

images[i]. onmouseout = function (evt) { clearInterval (changetimer); } 

這樣它撤消了change功能一樣。所以像這樣的東西。

images [i]。 onmouseout = function(evt){clearInterval(changetimer); changeBack(本); }

其中changeBack是一個與change函數做相反的函數。