jQuery .removeClass()没有做任何事情的奇怪问题

我有一些代码将类添加到元素,然后尝试删除它们,并在1秒后添加不同的类。 我得到一些非常奇怪的行为,我甚至无法在一个简单的jsfiddle示例中重现。

这是我的相关JavaScript代码:

console.log('before destroyed: ' + currentTile.get(0).className); currentTile.addClass(classes.destroyed); console.log('after destroyed: ' + currentTile.get(0).className); setTimeout(function () { console.log('before blanking: ' + currentTile.get(0).className); currentTile.removeClass().addClass(classes.blank + ' ui-draggable'); console.log('after blanking: ' + currentTile.get(0).className); }, 2000); 

以下是控制台的说法:

在此处输入图像描述

正如您所看到的,添加被destroyed类工作正常,但是对setTimeout内部的removeClass()的调用似乎什么也没做,然后是.addClass(classes.blank + ' ui-draggable'); 也似乎工作正常。 另外,如果我将一个类传递给removeClass它会删除那个没有问题的类。

如果是上下文问题或者currentTile是错误的元素,我会认为addClass也会失败吗? 任何人都知道这里发生了什么?

附加信息:jQuery最新(我认为v.1.9.0),jQuery UI v 1.10.0,Chrome v.24.0.1312.56 m


编辑 :问题似乎与jQuery UI直接相关,并且可以在这个小提琴中看到发生。


编辑2 :这被确认为jQuery中的一个错误 ,并已得到修复。

尝试使用.removeAttr('class')而不是.removeClass()

DEMO:

http://jsfiddle.net/MvvmJ/8/

希望这有帮助,如果您有任何疑问,请告诉我!