0

私はソート可能な div コンテナを持っており、それぞれにそれ自体を削除するボタンが含まれています。このボタンは、DOM から div コンテナーを削除する関数を呼び出します。並べ替え可能なアイテムをドラッグして並べ替えるまで、すべて問題ないように見えます。現在、削除された要素は GUI に表示されませんが (これは予期されることです)、ソート可能な配列のチェックを行うと、まだそこにあることが示唆されているようです。

削除中にこのアレイが適切に更新されるようにするにはどうすればよいですか? またはソート中。どんな助けでも大歓迎です。

以下は私のjavascriptです。

$(function() {

    // Make Cron Jobs Sortable
    $("#controlContainer").sortable({
            items: "> div:not(#controlHeader), serialize",
            create: function(event, ui) {
                    cronJobOrder = $(this).sortable("toArray",{attribute: "id"});
            },
            update: function(event, ui) {
                    cronJobOrder = $(this).sortable("toArray",{attribute: "id"});
            }
    });

});

それから私の機能

// the variable being passed in is the "Delete" button reference, that way it can find the div container it's in.
function deleteCronJob(cronJob) {

    var confirmation = window.confirm("Are You Sure?");

    if (confirmation) {
            $(cronJob).parents(".cronJobElement:eq(0)").fadeOut("medium", function() {
                    // Remove Item from cronJobOrder array
                    cronJobOrder.splice(cronJobOrder.indexOf($(this).attr("id")),1);
                    // Remove CronJob from View
                    $(this).attr("id").remove();
            });
    } else {
            return null;
    }

}
4

1 に答える 1

3

簡単なフィドルを用意しました。並べ替え可能な要素を配列として警告します (および削除ボタンがクリックされた後の更新)。その周りにあなたのものを構築してください。

http://jsfiddle.net/K3Kxg/

function sortableArrayAlert() {
    sortableArray = $('li').toArray();
    alert(sortableArray);
}

$(function(){
    sortableArrayAlert();
    $('ul').sortable();
    $('a').click(function(e){
        e.preventDefault();
        $(this).parent().remove().then(sortableArrayAlert());
    });
});
于 2013-11-07T15:03:51.220 に答える