对不起,这可能是一个长的,所以请多多包涵。我有三个可排序的(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时,类名称“selAdded”将附加到all-colls-list中的列表项。当一个项目被添加到coll-grouped-list时,一个类名“groupAdded”被附加到all-colls-list中的列表项目。例如:
<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中删除该项目的相应类名。但是,如果存在两个类名,而我只删除了一个,由于某种原因,它会同时删除两个!所以,如果我要从中删除“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
}
}
任何帮助将非常感激