Я хочу добавить элемент в DOM, а затем добавить класс с переходом для применения скользящего эффекта. В настоящее время я использую setInterval()
с задержкой 0
, в противном случае переход не произойдет (demo):Используйте jQuery.queue вместо setTimeout
var $block = $('<div/>', {class: 'block'});
$('body').append($block);
setTimeout(function() {
$block.addClass('shifted');
}, 0);
Я хочу использовать jQuery.queue
вместо этого, но с моим нынешним подходом он не работает: добавление элемента и добавление класса происходит сразу, поэтому переход не отображается.
$('body')
.append($block)
.queue(function() {
$block.addClass('shifted');
});
'class' является зарезервированным словом в JS, поэтому ваш литерал объекта должен использовать строку в качестве ключа (т. Е.' {'Class': 'block'} '). – zzzzBov
[Зарезервированные слова действительны только для идентификаторов] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Reserved_Words#Reserved_word_usage), а имя свойства - это идентификатор. Это не должно вызывать никаких проблем со стороны спецификации. – Pavlo