在悬停时单击图像src并单击

时间:2018-03-01 11:02:49

标签: jquery

我有两个版本的图像 - 灰色图像和同一图像的颜色版本。在正常状态下,图像显示为灰色。悬停或单击时,图像将变为彩色版本。

我知道可以使用toggleClass / addClass / etc或更改attr(src)来完成此操作。我已经设法使用悬停,但我无法使click元素工作。

这些是我尝试使用的图片和页面 - http://www.expatlifeinsurance.com/contact-health-insurance/

这是我现在的代码:

<div id="smokers">
<img id="nosmoke" src="http://www.expatlifeinsurance.com/images/smoke_no_grey.png">
    &nbsp;&nbsp;
<img id="smoke" src="http://www.expatlifeinsurance.com/images/smoke_grey.png">
</div>

$("#nosmoke")
.mouseover(function() {
this.src = this.src.replace('http://www.expatlifeinsurance.com/images/smoke_no_grey.png', 'http://www.expatlifeinsurance.com/images/smoke_no_green.png');
})
.mouseout(function() {
this.src = this.src.replace('http://www.expatlifeinsurance.com/images/smoke_no_green.png', 'http://www.expatlifeinsurance.com/images/smoke_no_grey.png');
})
.click(function() {
$(this).toggleClass("off");
if ($(this).hasClass("off")) this.src = this.src.replace(/(.*)-on(.*)/, "$1-off$2");
else this.src = this.src.replace(/(.*)-off(.*)/, "$1-on$2");
}
);

1 个答案:

答案 0 :(得分:0)

在查找代码之后,我得出结论,这段代码可以完美地运行,你可以试试这个。如果它可以帮助您解决问题。

点击功能可以很好地查看浏览器inspect element中的结果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <title>Document</title>
</head>
<body>
    <div id="smokers">
        <img id="nosmoke" src="http://www.expatlifeinsurance.com/images/smoke_no_grey.png">
            &nbsp;&nbsp;
        <img id="smoke" src="http://www.expatlifeinsurance.com/images/smoke_grey.png">
        </div>

</body>

<script>
        $(document).ready(function() {

           $("#nosmoke").mouseover(function() {
               this.src = this.src.replace('http://www.expatlifeinsurance.com/images/smoke_no_grey.png', 'http://www.expatlifeinsurance.com/images/smoke_no_green.png');
           });

           $("#nosmoke").mouseout(function() {
               this.src = this.src.replace('http://www.expatlifeinsurance.com/images/smoke_no_green.png', 'http://www.expatlifeinsurance.com/images/smoke_no_grey.png');
           });

           $("#nosmoke").click(function() {
               $(this).toggleClass("off");
               if ($(this).hasClass("off")){ 
                   this.src = this.src.replace(/(.*)-on(.*)/, "$1-off$2");
               }
               else {
                   this.src = this.src.replace(/(.*)-off(.*)/, "$1-on$2");
               }
           });
       });
</script>
</html>