クラスを要素に追加し、それらを削除して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
その 1 つのクラスは問題なく削除されます。
それがコンテキストの問題であるか、間違った要素である場合、私も失敗するcurrentTile
と思いますか? addClass
ここで何が起こっているのか誰にも分かりますか?
追加情報: jQuery 最新 (v.1.9.0 だと思います)、jQuery UI v 1.10.0、Chrome v.24.0.1312.56 m
編集: この問題は jQuery UI に直接関連しているようで、このフィドルで発生していることがわかります。
編集 2 : これはjQuery のバグとして確認され、修正されました。