如何通过使用jquery单击列表项来“复制”并将一个列表项从一个无序列表附加到另一个列表项?

时间:2014-05-11 09:09:30

标签: jquery append playlist audio-player

我目前正在制作自己的自定义音频播放器。我不想使用jPlayer。我希望能够点击" li&# 34;在我的网页中,来自" ul"将它附加到播放列表中。这是我的代码。这只是一些测试代码。如果有人可以提供帮助,那就太棒了!

所以这是HTML:

<h2>First List</h2>
<p>Click a track below to add to 'Second List' below:</p>
<div class="first">
    <ul>
        <li id="one" class="add"><a href"#">This is a paragraph.</a></li>
        <li id"two" class="add"><a href"#">This is another paragraph.</a></li>
    </ul>
</div>

<h2>Second List</h2>
<div class="second">
    <ul>
        <li>List item 1</li>
        <li>List item 2</li>
        <li>List item 3</li>
    </ul>
</div>

这是我的js:

function updateList() {
    var self = $(this);
    var holder = self.find("li");
    var trackId = holder.attr("id");
    var trackItem = $("#"+trackId).text();

    $('.second ul').append('<li>' + '<a href"#">' + trackItem + '</a>' + '</li>');
    $('.second ul li:last').hide().slideDown();
}

// Appending the new item
$('.add a').click(function() {
    updateList();
});

1 个答案:

答案 0 :(得分:0)

首先,针对您的具体问题的许多可能解决方案之一可能如下所示:

$('.add').click(function() {
    $('.second ul').append($(this).removeClass('add').unbind('click'));  
});

您的代码存在一些主要问题。其中之一是,您在this函数中引用updateList()(在这种情况下指向window)但与this不同(指向点击的LI$('.add a').click()收到的click()}如果您想要在额外功能中处理添加,则必须将此值从updateList()函数传递给{{1}}

最后因为这是你对stackoverflow的第一个问题,你可能会考虑为将来的问题使用正确的标签,因为这个问题与音频,播放器或播放列表无关。这是一个简单的jquery问题。

希望我能帮助你一点,并且好好实现你的音频播放器