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

おそらく、appendTo の代わりに after使用したいでしょう

于 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 に答える