-1

对不起,这可能是一个长的,所以请多多包涵。我有三个可排序的(jqueryUI)列表。列出all-colls-listcoll-selected-listcoll-grouped-list。我可以将列表all-colls-list 的项目放入coll-selected-listcoll-grouped-list 中

例如,我可以同时将 'list item' 放入coll-selected-listcoll-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-listcoll-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
                }
            }

任何帮助将非常感激

4

3 回答 3

0

如果您仍然需要检查它是否有课程...

$("#all-colls-list li:contains(" + itemName + ") selAdded").each(
function() {
$(this).removeClass('selAdded');
dp-_other();
}
)
于 2012-07-31T13:03:01.867 回答
0

看起来像您想要的那样添加和删除类,但是检查它们是否存在的代码不能正常工作。当您检查类时,$(this)指的是父级<ul>而不是 the <li>,因此显示“无”,因为 the<ul>既没有 theselAdded也没有groupAdded类。

当我在你的小提琴中拖拽东西时,我正在使用 Chrome 的内置检查器来查找类。我使用console.log($(this));了,所以我可以查看错误控制台,以确定$(this)代码中当时实际指的是什么。

于 2012-07-31T13:07:11.500 回答
0

如果您使用 firebug 或任何检查工具,您可以看到类被正确删除,但代码的警报部分不正确

试试这个小提琴http://jsfiddle.net/xf8j2/2/

尽管您应该清理此代码并缓存一些 jquery 对象

于 2012-07-31T13:11:56.353 回答