jQuery добавить CSS к текущему li js - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть следующий код.Когда я нажимаю на add-remove-image, я меняю иконку font-awesome, но также хочу изменить стиль heart div.Как это сделать, потому что теперь стиль сердца div меняется только для первого li.

<ul id="gallery">
<li>
<div id="heart" style="display: none;"></div>
some text
<i class="add-remove-image fas fa-check"></i>
</li>
..
</ul>

.

$('.add-remove-image').on('click', function() {
    if(!$(this).hasClass('image-added')) {
        imgArr.push($(this).parent().parent().find('img').attr('src'));

        $(this).addClass('image-added');
        $(this).removeClass('fa-check');
        $(this).addClass('fa-times');
        $('#heart').css("display", "block");        
    }
    else {
        var index = imgArr.indexOf($(this).parent().parent().find('img').attr('src'));
        if (index > -1) {
            imgArr.splice(index, 1);
        }

        $('#heart').css("display", "none");
        $(this).removeClass('fa-times');
        $(this).addClass('fa-check');
        $(this).removeClass('image-added');
    }
});

1 Ответ

0 голосов
/ 17 ноября 2018

Попробуй это.Вместо

$('#heart').css("display", "block");

Используйте это

$(this).parent().find('#heart').css("display", "block");

Симилляр в выражении "else:" вместо

$('#heart').css("display", "none");

Используйте это

$(this).parent().find('#heart').css("display", "none");

Надеюсь, это сработает так, как вы ожидаете.

...