我有一些代码可以为一个元素添加类,然后尝试删除它们,并在1秒后添加不同的代码。我得到了一些非常奇怪的行为,我甚至无法在一个简单的jsfiddle example中重现。
以下是我的相关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
类工作正常,但removeClass()
内部对setTimeout
的调用似乎无效,然后是.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直接相关,可以在this fiddle中看到。
编辑2 :这已被确认为bug in jQuery,并已修复。
答案 0 :(得分:11)