我有两个版本的图像 - 灰色图像和同一图像的颜色版本。在正常状态下,图像显示为灰色。悬停或单击时,图像将变为彩色版本。
我知道可以使用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">
<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");
}
);
答案 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">
<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>