У меня есть код, который добавляет классы к элементу, а затем пытается удалить их и добавить разные на 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 latest (v.1.9.0, я думаю), jQuery UI v 1.10.0, Chrome v.24.0.1312.56 m
Изменить. Проблема, по-видимому, напрямую связана с пользовательским интерфейсом jQuery, и ее можно увидеть в этой скрипке.
Изменить 2. Это было подтверждено как ошибка в jQuery и исправлена.