Мои функции hide () / show () перезаписывают фоновое изображение встроенного стиля с помощью display: none / block, но каким-то образом не перезаписывают первый HTML-элемент фонового изображения (.concrete) .img.
По умолчанию .concrete имеет display: block в CSS, а другие .img имеют display: none;
HTML:
<p class="slider-link concrete active"><?php the_field("product1"); ?></p>
<p class="slider-link light"><?php the_field("product2"); ?></p>
<div class="img concrete" style="background-image: url(<?php the_field('concrete_img'); ?>)">
<div class="content">
...
</div>
</div>
<div class="img light" style="background-image: url(<?php the_field('light_img'); ?>)">
<div class="content">
...
</div>
</div>
jQuery:
$('.slider-link').click(function() {
$('.slider-link').removeClass('active');
$(this).addClass('active');
if ($(this).hasClass('concrete')) {
$('.img').hide();
$('.img.concrete').show();
} else if ($(this).hasClass('light')) {
$('.img').hide();
$('.img.light').show();
});