我有一些代码向元素添加类,然后尝试删除它们并在 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
类工作正常,但对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 直接相关,并且可以在这个 fiddle中看到。
编辑 2:这已被确认为jQuery 中的错误,并已修复。