1

我正在尝试克隆一个列表项,然后将其附加到该克隆的列表项的底部,注意它应该在被克隆的列表项下方,而不是在列表的底部,因为我自己可以这样做。目的是将它与可排序的 jQuery.ui 一起使用。

一切正常,事实上我什至可以正确克隆和追加。但是,它将它附加在结束标签之前</li>,并且对于我的生活,我不能强迫它附加这个标签之后。

这是 HTML 标记:

<ul id="column-2" class="connectedSortable">
    <li class="ui-state-default">
        <div class="label">feature</div>
        <div class="action">
            <div class="delete"></div>
            <div class="other"></div>
        </div>
    </li>
</ul>

我们关心的部分是class="other"点击后会复制列表项。

这是到目前为止的jQuery:

// This works fine
$(".other").click(function() {

    // This needs to be set (global) to be used later on in some future code.
    actionTarget = this;        

    // This grabs the whole list item
    var targetStory = $(actionTarget).parent().parent();

    // This clones the list item, as well as appending 
    // that clone to the cloned list item
    $(targetStory).clone().appendTo(targetStory);

})

这很好用,它抓取列表项,克隆它,然后将其转储到屏幕上 - 但在错误的位置:(

<ul id="column-2" class="connectedSortable">
    <li class="ui-state-default">
        <div class="label">feature</div>
        <div class="action">
            <div class="delete"></div>
            <div class="other"></div>
        </div>
        <li class="ui-state-default">
            <div class="label">feature</div>
            <div class="action">
                <div class="delete"></div>
                <div class="other"></div>
            </div>
        </li>
    </li>
</ul>

任何人都知道为什么它没有附加到被克隆的列表项的末尾,以及如何解决这个问题?

4

3 回答 3

4

也许您想使用after而不是 appendTo

于 2009-04-01T10:10:55.810 回答
1

我想你想要的是这样的:

$(targetStory).clone().appendTo(targetStory.parent());
于 2009-04-01T10:09:58.603 回答
0

我认为insertAfter是您正在寻找的。after 将在克隆之后插入原始节点,而不是在原始节点之后插入克隆。像这样的东西应该工作:

$(targetStory).clone().inserAfter(targetStory);
于 2009-04-01T14:15:21.633 回答