Установить фоновое изображение родительского div на основе атрибута дочернего div при наведении курсора

У меня это почему-то не хочет работать. У меня есть код ниже.

При наведении курсора на div homeShowingWrapper фон div homeHero должен измениться на значение атрибута data-featured-image div homeShowingWrapper.

Вот моя структура HTML:

<div id = "homeHero">
    <div class = "homeShowingWrapper" data-featured-image = "/uploads/Hover-Background.jpg">
        Content
    </div>
</div>

И моя функция JQuery:

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

    $("#homeHero").css("background-image" , "url(/uploads/Initial-Background.jpg);");

    $(".homeShowingWrapper").mouseover(function() {

        // Background-image
        var background = $(this).attr('data-featured-image');

        $("#homeHero").css("background-image" , "url(" + background + ");");

    });

});

Любая идея, почему строка $("#homeHero").css("background-image" , "url(" + background + ");"); не применяет фоновое изображение?

выполните console.info(background), чтобы узнать, правильно ли вы получаете данные. Способ jQuery чтения атрибута данных заключается в следующем: var background = $(this).data('featured-image');

Nawed Khan 29.01.2019 22:33

Да, получал правильный URL. Ответ ниже решенной проблемы.

warm__tape 29.01.2019 23:37
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
0
2
68
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как упомянул Навед Хан в комментариях, правильный способ чтения атрибута данных — с data().

Я установил jsFiddle для устранения неполадок и обнаружил, что мне не только нужно использовать data('featured-image'), но и точка с запятой в jQuery .css() должна быть опущена, чтобы он работал.

Другие вопросы по теме