Не подключается class в img

114
13 февраля 2021, 01:30

День добрый! Ребята можете разъяснить почему не подключается класс в данном коде:

<img
    src="http://tricolor.utest.space/assets/images/like_dislike/like.png"
    alt="like"
    data-article="<?php echo $information_id?>"
    id="likeBtn"
    name="like"
    <?php echo (isset($_COOKIE["article-$information_id"]) && $_COOKIE["article-$information_id"] == 'likes') ? 'class=\'actionBtn\'' : '';?>
>

Ну суть такова что через jquery добавляем класс actionBtn - он добавляется все норм. вот только стиль не работает... Почему???

css:

#likeBtn, #dislikeBtn {
    background: none;
    opacity: 0.4;
    margin-right: 10px;
    width: 42px;
}
#likeBtn:hover {
    opacity: 1;
}
#dislikeBtn:hover {
    opacity: 1;
}
.actionBtn {
    background-color: blue;
}

jquery:

jQuery(document).ready(function($){

$('#likeBtn').click(function (e) {
    e.preventDefault();
    var article_id = $(this).data('article');
    $.ajax({
        url:'route=like/like/index',
        type: 'get',
        data:{type: 'likes', article_id:article_id},
        success: function (data) {
            if(data){
                $('#likeBtn').addClass(data);
                $('#dislikeBtn').removeClass(data);
            }else{
                $('#likeBtn').removeClass('actionBtn');
            }
        },
        error: function () {
        }
    });
});
$('#dislikeBtn').click(function (e) {
    e.preventDefault();
    var article_id = $(this).data('article');
    $.ajax({
        url:'route=like/like/index',
        type: 'get',
        data:{type: 'dislikes', article_id: article_id},
        success: function (data) {
            if(data){
                $('#dislikeBtn').addClass(data);
                $('#likeBtn').removeClass(data);
            }else{
                $('#dislikeBtn').removeClass('actionBtn');
            }
        },
        error: function () {
        }
    });
});

});

Answer 1

Всё дело в том, что элементу так же назначаются стили по id-селектору, вес которого выше, чем class. Почитайте об этом на MDN, чтоб лучше понимать, что происходит.

#id-1 { 
    background: none; 
} 
 
.class-1 { 
    background-color: blue; 
}
<div id="id-1" class="class-1">div 1</div> 
<div class="class-1">div 2</div>

READ ALSO
Почему ввод переменной типа string с помощью getline не работает?

Почему ввод переменной типа string с помощью getline не работает?

Ввод данных о первой коробке срабатывает без ошибокНо начиная со второй не происходит ввод названия (arr[i]

98
Как центрировать все по вертикали CSS

Как центрировать все по вертикали CSS

Нужно отцентровать весь текст с кнопкой по вертикалиПробовал много способов, но так ничего не получилось

121
onMouseDown/Up на мобильных устройствах

onMouseDown/Up на мобильных устройствах

Пишу игру, движение осуществляется с помощью кнопок (стрелок) на которых висит отслеживание onMouseDown (персонаж начинает двигаться) и OnMouseUp (персонаж...

125
Listbox обрезает кнопки по ширине [дубликат]

Listbox обрезает кнопки по ширине [дубликат]

Что сделать, чтобы ListBox не обрезал кнопки по ширине? При том, что применён margin ко всем сторонамЯ пытался загуглить, но там вопрос был в том,...

115