Не доверяйте Deferreds, чтобы определить, когда элементы DOM были нарисованы на экране. Поскольку вы используете let
, я полагаю, вы можете использовать современный JavaScript, как onanimationstart
. Вы можете использовать это с CSS анимациями, чтобы определить, когда таблица действительно была нарисована.
@keyframes any-animation {
from {opacity: 0.99;}
to {opacity: 1.0;}
}
table {
animation-name: any-animation;
animation-duration: 0.001s;
}
let cur_grid = document.getElementById('grid1')
// table html is created.
let str_tbl_html = '<table id="tbl_grid1" onanimationstart="hideThirdColumn()"><tbody><tr><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td></tr></tbody></table>'
function hideThirdColumn() {
$('#tbl_grid1 tr td:nth-child(3)').hide()
};
Я изучил этот трюк в старом посте блога на css -трюках. com (он также упоминает несколько других блоггеров на этой странице).