2011-03-01 62 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>