Как установить добавленные элементы с помощью jQuery позади другого элемента

#javascript #jquery #html #css

#javascript #jquery #HTML #css

Вопрос:

Я создаю список воспроизведения на основе SoundCloud API. У меня есть список, в который при li нажатии будет добавлен новый элемент div к содержимому li . Я использую метод append () для этого, и это работает, но он добавляет элемент div спереди, поэтому текст, который уже существовал в элементе, удаляется. Как я могу это изменить? Мой CSS-код:

 .list > li {
    background:#eee;
    display:block;
    position: relative;
    background:;
    padding:10px;
    box-shadow: inset 0 1px 0 #fff;
}
.currentSong {
    width: 100%;
    height: 100%;
    opacity: 0.8;
    position: absolute;
    top: 0;
    left: 0;
}
.currentSongLoad {
    background:black;
    height: 100%;
    opacity: 0.6;
    position: absolute;
    top: 0;
    left: 0;
}
  

HTML:

 <li>
    <h3 class="name">Jonny Stromberg</h3>
    <p class="release">1986</p>
</li>
  

jQuery:

 $(".list li").click(function () {
    $(this).append("<div class="currentSong"><div class="currentSongLoad"></div></div>");

    SC.get("/tracks/155552335", function (tracks) {
        trackWaveform = tracks.waveform_url;
        $(".name").text(tracks.title);
        $(".release").text(tracks.release_year);
        $(".currentSong").css({
            background: "url("   trackWaveform   ") top center no-repeat red",
            "background-size": "100% 100%",
            width: "100%",
            height: "100%",
            left: "0"
        });
        console.log(trackWaveform);
    });

    SC.stream("/tracks/155552335", function (sound) {
        sound.play({
            whileplaying: function () {
                $(".currentSongLoad").css('width', ((sound.position / sound.duration) * 100)   '%');
            },
        });
    });
});
  

http://jsfiddle.net/danials/6Djwd/8/

Есть идея поместить .currentSong позади других элементов ( h3 и p )?

Ответ №1:

Бум, ваша проблема решена: h3-p-tags-behind-song-layer

css


 .list {
    font-family:sans-serif;
    margin:0;
    padding:20px 0 0;
}
.list > li {
    height:50px;
    background:#eee;
    display:block;
    position: relative;
    background:;
    padding:10px;
    box-shadow: inset 0 1px 0 #fff;
}
.currentSong {
    width: 100%;
    height: 100%;
    opacity: 0.8;
    position: absolute;
    top: 0;
    left: 0;
}
.currentSongLoad {
    background:black;
    height: 100%;
    opacity: 0.6;
    position: absolute;
    top: 0;
    left: 0;
}
h3 {
    position:absolute;
    color:#fff;
    font-size: 16px;
    margin:0 0 0.3rem;
    font-weight: normal;
    font-weight:bold;
    z-index:999999;
    height:10px;
}
p {
    position:absolute;
    color:#fff;
    margin:0;
    z-index:999999;
    margin-top:25px;
}
  

Комментарии:

1. Спасибо за ваш ответ. Но это все то же самое. Текст находится позади. Для проверки вы меняете непрозрачность .currentSong , и текст исчезает.

2. подождите, теперь я понял, чего вы хотите!