对不起,这可能很长,请耐心等待。我有三个可排序(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 中删除该项目时,会在所有内容中删除该项目的相应班级名称-colls列表即可。但是,如果存在两个类名,并且我只删除一个,由于某种原因,它会删除两个!
所以,如果我要从<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
}
}
非常感谢任何帮助
答案 0 :(得分:0)
如果你还需要检查它是否有班级......
$("#all-colls-list li:contains(" + itemName + ") selAdded").each(
function() {
$(this).removeClass('selAdded');
dp-_other();
}
)
答案 1 :(得分:0)
看起来像你想要的那样添加和删除类,但是检查它们存在的代码是不能正常工作的。当您检查课程时,$(this)
指的是父<ul>
而不是<li>
,因此显示'无',因为<ul>
没有{ {1}}也不是selAdded
类。
当我在你的小提琴中拖动东西时,我正在使用Chrome的内置检查员来查找课程。我使用了groupAdded
,因此我可以查看错误控制台,以确保代码中的console.log($(this));
实际指的是什么。
答案 2 :(得分:0)
如果您使用firebug或任何检查工具,您可以看到正确删除了类但代码的警报部分不正确
试试这个小提琴http://jsfiddle.net/xf8j2/2/
虽然您应该清理此代码并缓存一些jquery对象