JQuery无法更改图像SRC onmouseover / hover

时间:2013-09-25 02:18:43

标签: javascript jquery html css

经过一些研究,下面的代码应该可以正常更改图像源,但不是吗?

$("#li_1").mouseover(function () {
            $(this).attr("src", "images/hover_12.png");
        }, function () {
            $(this).attr("src", "images/ori_12.png");
        });

HTML代码

<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <link rel="stylesheet" type="text/css" href="demo.css">
<style>
li{
    display: block;
}
</style>
</head>

<body>
    <div id='wrap'>
        <div id="clickable_div">MENU</div>
            <div id="nav_menu">
                <ul class="dropDown">
                    <li id="li_1"><img src="images/ori_12.png"></li>
                    <li id="li_2"><img src="images/ori_14.png"></li>
                    <li id="li_3"><img src="images/ori_15.png"></li>
                    <li id="li_4"><img src="images/ori_16.png"></li>
                </ul>
            </div>
        </div>
    </div>

</body>
<script>
        $("#li_1").mouseover(function () {
            $(this).attr("src", "images/hover_12.png");
        }, function () {
            $(this).attr("src", "images/ori_12.png");
        });

        $('#wrap').mouseover( function(){
            $('#nav_menu').slideDown();
        });
        $('#wrap').mouseleave( function(){
            $('#nav_menu').slideUp();
        });

    </script>
</html>

DEMO.CSS:

#clickable_div {width:166px; background-color:#9c9c9c;}
*{margin:0; padding:0}
#nav_menu{width:166px; height:auto; background-color:#CCC;display:none;}

#wrap{ width:166px }

这个想法非常简单。我正在尝试鼠标悬停一个元素,并有一个下拉的感觉列出项目,对于我悬停的每个项目,li的图像将被替换。

1 个答案:

答案 0 :(得分:4)

您似乎在尝试更改src元素的LI,而不是IMG元素。
您还需要mouseout事件才能将图像src更改回正常状态。

试试这个:

$("#li_1 img")
    .mouseover(function () {
        $(this).attr("src", "images/hover_12.png");
    })
    .mouseout(function () {
        $(this).attr("src", "images/ori_12.png");
    });



如果你想要它是动态的,那么你不必为每个图像添加一段代码,试试这个。

$('#nav_menu li img')
    .mouseover(function () {
        this.src = this.src.replace('/ori_', '/hover_');
    })
    .mouseout(function () {
        this.src = this.src.replace('/hover_', '/ori_');
    });
相关问题