2011-03-01 65 views
0

我正在嘗試做一些非常簡單的事情。 我有一個翻滾的圖像。當它被點擊時,onmouseout和onmouseover事件被移除並且圖像被交換。到目前爲止,我已經知道了,但現在我想添加一些東西,以便當再次單擊時,所有內容都會恢復到原始狀態(再次交換圖像並激活onmouseover和onmouseout。管理mousever和mouseclick事件

這是我到目前爲止獲得的代碼:

<a href="#" 
      onMouseOut="MM_swapImgRestore(); 
      " 
      onMouseOver="MM_swapImage('image','','images/image-2.jpg',1)" 
      onClick=" 
       MM_swapImage('image','','images/image-3.jpg',1); 
       this.onmouseover=null; 
       this.onmouseout=null; 
        " 
> 
<img name="image" src="images/image-1.jpg" id="rond9"></a> 

回答

2

我很容易的解決辦法,我想補充一個標誌和射擊的鼠標懸停和鼠標移開事件,因爲它是去除附着和事件的拆卸的不必要的負擔前檢查

即像:

<script>var myFlag=true;</script> 
<a href="#" 
      onMouseOut="if(myFlag === true){MM_swapImgRestore();}" 
      onMouseOver="if(myFlag === true){MM_swapImage('image','','images/image-2.jpg',1);}" 
      onClick="MM_swapImage('image','','images/image-3.jpg',1); 
       myFlag = !myFlag;" 
> 
<img name="image" src="images/image-1.jpg" id="rond9"></a> 
+0

這實際上是一個很好的,簡單的解決方案。 – FarligOpptreden 2011-03-01 11:11:18

+0

非常感謝它,它的工作非常好,只有這樣,圖像交換,我想第二次點擊發生只有在推出,而不是點擊,所以我只需要添加另一個MM_swapImage與onClick線標誌檢查。無論如何感謝您的快速回復。 – seb 2011-03-01 11:32:24

+0

不錯...不要忘了標記正確的答案是正確的 – KoolKabin 2011-03-01 11:39:18

0

看到這是由一個所見即所得的編輯器(大概是DreamWeaver)生成的,我不會推薦jQuery實現,而是不需要引用jQuery就可以工作的東西。你可能會嘗試這樣的:

<script type="text/javascript"> 
var removeEvents = true; 
function EventAttach(anchor) { 
    MM_swapImage('image','','images/image-3.jpg',1); 
    anchor.onmouseover = removeEvents ? null : new function() { MM_swapImage('image','','images/image-2.jpg',1) }; 
    anchor.onmouseout = removeEvents ? null : new function() { MM_swapImgRestore(); }; 
    removeEvents = !removeEvents; 
} 
</script> 
<a href="#" 
    onMouseOut="MM_swapImgRestore();" 
    onMouseOver="MM_swapImage('image','','images/image-2.jpg',1)" 
    onClick="EventAttach(this);" 
> 
<img name="image" src="images/image-1.jpg" id="rond9"></a>