すみません、長くなってしまうかもしれませんがよろしくお願いします。3 つの並べ替え可能な (jqueryUI) リストがあります。all-colls-list、coll -selected-list、およびcoll -grouped-list を一覧表示します。リストall-colls-list の項目をcoll-selected-listとcoll -grouped-list に入れることができます。
したがって、たとえば、'list item' をcoll-selected-listとcoll -grouped-list の両方に同時に入れることができ、アイテムはall-colls-listに保持されます。coll-selected-listにアイテムが追加されると、 all-colls-list内のリストアイテムに「selAdded」というクラス名が付けられます。coll-grouped-listにアイテムが追加されると、 all-colls-list内のリストアイテムに「groupAdded」というクラス名が付けられます。例:
<li class"selAdded">Blah blha</li> OR
<li class"groupAdded">Blah blha</li> OR (when item is put in both lists)
<li class"selAdded groupAdded">Blah blha</li>
coll-grouped- listまたはcoll-selected-listからアイテムを削除すると、 all-colls-list内のそのアイテムのそれぞれのクラス名が削除されます。ただし、2 つのクラス名が存在し、1 つだけを削除すると、何らかの理由で両方が削除されます。したがって、「selAdded」を削除する<li class"selAdded groupAdded">Blah blha</li>
と、そのままになるようです<li>Blah blha</li>
ここでフィドルを作成しましたhttp://jsfiddle.net/noscirre/xf8j2/
これは、クラス名を削除する私のコードです:
if ($("#all-colls-list li:contains(" + itemName + ")").hasClass("selAdded")) {
$("#all-colls-list li:contains(" + itemName + ")").removeClass("selAdded"); }
これは、削除されたクラスの存在をチェックするコードです。
receive: function (event, ui) {
alert($(this).attr('class'));
if ($(this).hasClass("groupAdded") && $(this).hasClass("selAdded")) {
alert("both");
//Do nothing
}
if ($(this).hasClass("groupAdded") && !$(this).hasClass("selAdded")) {
alert("group"); //Do nothing
}
if (!$(this).hasClass("groupAdded") && $(this).hasClass("selAdded")) {
alert("sel"); //Do nothing
}
if (!$(this).hasClass("groupAdded") && !$(this).hasClass("selAdded")) {
alert("none"); //Do nothing
}
}
どんな助けでも大歓迎です