【发布时间】:2012-07-29 05:54:09
【问题描述】:
抱歉,这篇文章可能有点长,请多多包涵。我有三个可排序的(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。但是,如果存在两个类名,而我只删除了一个,由于某种原因,它会同时删除两个!
所以,如果我要从 <li class"selAdded groupAdded">Blah blha</li> 中删除“selAdded”
好像只剩下<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
}
}
任何帮助将不胜感激
【问题讨论】:
-
为什么不使用 .removeClass("selAdded");
标签: jquery jquery-ui jquery-ui-sortable