【问题标题】:onmouseover, onmouseout,onclick function Javascriptonmouseover, onmouseout,onclick 函数 Javascript
【发布时间】:2012-08-08 07:17:43
【问题描述】:

我的页面有一个菜单,这里是 Onmouseover, Onmouseout img

<img id='wits' class="wits1" src="Images/MenuInWhite/ContactButton1.png" onmouseover="this.src='Images/mouseover/ContactButton2.png'"
        onmouseout="this.src='Images/MenuInWhite/ContactButton1.png'"  /><br />
    <img id='city' class="city1" src="Images/MenuInWhite/ActivitiesButton1.png" onmouseover="this.src='Images/mouseover/ActivitiesButton2.png'"
        onmouseout="this.src='Images/MenuInWhite/ActivitiesButton1.png'" /><br />
    <img id='organise' class="city1" onmouseout="this.src='Images/MenuInWhite/CruisesButton1.png';"
        onmouseover="this.src='Images/mouseover/CruisesButton2.png';" src="Images/MenuInWhite/CruisesButton1.png" /><br />
    <img id='people' class="city1" onmouseout="this.src='Images/MenuInWhite/HomeButton1.png';"
        onmouseover="this.src='Images/mouseover/HomeButton2.png';" src="Images/MenuInWhite/HomeButton1.png" /><br />

每当我将鼠标放在图像上时,图像必须更改,当我将鼠标移开时,必须将其更改为原始图片,它工作正常,

我想知道当我选择任何图像时该怎么做,该图像必须更改为在图像上移动鼠标时显示的图像。当我选择任何其他图像时,必须执行相同的过程,但之前更改的图像必须更改回原始图像。

请帮我解决这个问题,

提前致谢

【问题讨论】:

    标签: javascript asp.net html css


    【解决方案1】:

    这是一个纯 JavaScript 解决方案,可能会有所帮助

    function isMSIE() 
    {
       var ie7 = 
       (document.all && !window.opera && window.XMLHttpRequest) ? true : false;
       return ie7;
    }
    function getParent(element, depth) 
    {
       var rVal = element;
       if (isMSIE()) {
           for (i = 0; i < depth; i++)
           rVal = rVal.parentElement;
       }
       else {
            for (i = 0; i < depth; i++)
            rVal = rVal.parentNode;
        }
        return rVal;
    }
    function clicked(sender)
    {
        var parent   = getParent(sender, 1);
        var imgs = parent.getElementsByTagName("IMG");
        for(i=0; i<imgs.length; i++)
        {
           if (imgs[i] != sender) {
              imgs[i].src = 'Images/MenuInWhite/ContactButton1.png';
              imgs[i].onmouseout = 
                function () { this.src = 'Images/MenuInWhite/HomeButton1.png'; };
           }
           else {
              imgs[i].src = 'Images/MenuInWhite/HomeButton1.png';
              imgs[i].onmouseout = null;
           }
            if(imgs[i]!=sender)
              imgs[i].src = 'Images/MenuInWhite/HomeButton1.png';
        }
    }
    

    <div>
       <img id='wits' class="wits1" 
          src="Images/MenuInWhite/ContactButton1.png"    
          onmouseover="this.src='Images/mouseover/ContactButton2.png'"
          onmouseout="this.src='Images/MenuInWhite/ContactButton1.png'"
          onclick="clicked(this);"  /><br />
       // Just add this onclick="clicked(this);" on each img
    </div>
    

    【讨论】:

    • Yogi-->它不起作用,元素 ID 在这里不起作用 if(imgs[i]!=sender) alert('123') imgs[i].src = 'Images/MenuInWhite/ HomeButton1.png';
    • yogi--> 是的,我已经在我的页面中添加了 onclick 和上面的 javascript 并尝试了,它没有改变,,,,,
    • @ShaiRiyaz 看看它现在它正在工作实际上我没有删除那个 onmouseout 处理程序,当鼠标从那个 img 移出时它会恢复正常,愚蠢的错误:)