JavaScript
x
32
32
1
jQuery(document).ready(function(){
2
3
jQuery(".artists-main .artists-name1 a ").mouseover(function(){
4
jQuery(".artists-image .artists-img1").show();
5
});
6
jQuery(".artists-main .artists-name1 a ").mouseout(function(){
7
jQuery(".artists-image .artists-img1").hide();
8
});
9
10
jQuery(".artists-main .artists-name2 a ").mouseover(function(){
11
jQuery(".artists-image .artists-img2").show();
12
});
13
jQuery(".artists-main .artists-name2 a ").mouseout(function(){
14
jQuery(".artists-image .artists-img2").hide();
15
});
16
17
jQuery(".artists-main .artists-name3 a ").mouseover(function(){
18
jQuery(".artists-image .artists-img3").show();
19
});
20
jQuery(".artists-main .artists-name3 a ").mouseout(function(){
21
jQuery(".artists-image .artists-img3").hide();
22
});
23
24
jQuery(".artists-main .artists-name4 a ").mouseover(function(){
25
jQuery(".artists-image .artists-img4").show();
26
});
27
jQuery(".artists-main .artists-name4 a ").mouseout(function(){
28
jQuery(".artists-image .artists-img4").hide();
29
});
30
31
32
});
JavaScript
1
1
1
.artists-image img{display: none;}
JavaScript
1
15
15
1
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
2
3
4
<div class="artists-main">
5
<div class="artists-name1"><a href="#">Artist 1</a></div>
6
<div class="artists-name2"><a href="#">Artist 2</a></div>
7
<div class="artists-name3"><a href="#">Artist 3</a></div>
8
</div>
9
10
11
<div class="artists-image">
12
<img class="artists-img1" src="https://picsum.photos/200/300?random=1">
13
<img class="artists-img2" src="https://picsum.photos/200/300?random=2">
14
<img class="artists-img3" src="https://picsum.photos/200/300?random=3">
15
</div>
Hide and show images on hover. Class artists-main has artists names and class artists-image has images of the artists. It’s working fine but my code is lengthy. I have round about 50+ artists and page will be filled by jQuery code. I want to shorten it.
Advertisement
Answer
use same class name
JavaScript
1
9
1
$.each($(".artists-main .artists-name a"), function(index, element) {
2
$(element).mouseover(function() {
3
$('.artists-image .artists-img:eq(' + index + ')').show();
4
})
5
6
$(element).mouseout(function() {
7
$('.artists-image .artists-img:eq(' + index + ')').hide();
8
})
9
})
JavaScript
1
1
1
.artists-image img{display: none;}
JavaScript
1
15
15
1
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
2
3
4
<div class="artists-main">
5
<div class="artists-name"><a href="#">Artist 1</a></div>
6
<div class="artists-name"><a href="#">Artist 2</a></div>
7
<div class="artists-name"><a href="#">Artist 3</a></div>
8
</div>
9
10
11
<div class="artists-image">
12
<img class="artists-img" src="https://picsum.photos/200/300?random=1">
13
<img class="artists-img" src="https://picsum.photos/200/300?random=2">
14
<img class="artists-img" src="https://picsum.photos/200/300?random=3">
15
</div>