повторно вычислите высоту элемента в jQuery после изменения класса

У меня есть список объектов и согласно критерии, это получает класс с помощью jQuery на document.ready, который инициировал столбцы CSS3.

Если бы список отображен в столбцах, он имел бы меньшую высоту. Там какой-либо путь состоит в том, чтобы получить новую высоту в jQuery сразу после изменения класса?

$items.each(function(i){

var theItem = this;

console.log($(theItem).height());

//extended layout

if ( theCriteria ) {
    $(theItem).addClass('extended'); 
    console.log('after', $(theItem).height()); }
}

Код выше возвращает начальную высоту на обоих вызовах. Я предполагаю, что должен инициировать что-то еще.

6
задан GreenDude 4 January 2010 в 07:12
поделиться

1 ответ

[

] Во многих случаях манипуляции с домом не происходят до тех пор, пока не завершено закрытие функции. [

] [

] Хорошая статья по этому вопросу: []http://www.quirksmode.org/blog/archives/2009/08/when_to_read_ou.html[][

] [

] Может быть, лучше сделать вызов функции [] setTimeout[] вместо прямого журнала. [

] [

] вместо: [

] [
console.log('after', $(theItem).height());
] [

] попробуй [

] [
setTimeout(function(){ console.log('after', $(theItem).height()); }, 0);
] [

]Установка тайм-аута на []0[] позволит запустить его как можно быстрее, но после текущей функции. [

]. [

] Надеюсь, это твоя проблема. Удачи. [

]
9
ответ дан 10 December 2019 в 02:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: