Я пытаюсь получить gif gg для отображения, пока мои данные загружаются. Я просто звоню $(element).show()
непосредственно перед входом в мой цикл $(element).each()
, который отображает все дочерние сетки (то есть DisplayInnerTable()
) с использованием данных.Wait gif не будет отображаться непосредственно перед вызовом JQuery .each
Кажется, я сузил проблему до метода .each()
. Если я удалю весь код внутри .each()
, gid wait пока не отобразится, и да, я также удалю .hide()
. Если я установил точку останова непосредственно перед .each()
, отобразится экран gif ожидания. Кажется, это проблема с синхронизацией, например, .each()
происходит так быстро, что wait.gif
внутри div
не имеет времени на визуализацию. И хотя на этой ноте, почему Javascript-поток предотвращал манипулирование элементами html?
Я нашел похожие статьи, но никто из них не ответил на эту конкретную проблему. Большинство других статей рекомендуют использовать setTimeout()
. хорошо, я пробовал это всеми возможными способами, не повезло. Любая помощь, подсказки или подсказки будут высоко оценены.
Вот мои фрагменты кода:
$(document).ready(function()
{
$('#expand-all').on('click', function() {
$("#loader-wait-ani").show();
ExpandAllChildGrids();
});
function ExpandAllChildGrids()
{
var tr;
$('#result-table tbody tr').each(function (value, index) {
tr = $(this).closest('tr');
var row = outerTable.row(tr);
userId = row.cell(tr, 1).data();
DisplayInnerTable(userId, row, tr);
});
$('#expand-all-img').attr('src', '/Images/minus.gif');
$("#loader-wait-ani").hide();
}
});
Вот мой HTML:
<div style="width:100%; margin: 0 auto; text-align:center;">
<div id="loader-wait-ani" class="modal" style="display: none; z-index: 300;">
<img src="~/Images/waitbar.gif" alt="Pleae Wait..." width="250" height="20" />
</div>
</div>
У вас есть несколько ID = "Загрузчик-Подожди ani "? – RIanGillis
Вы пытались использовать функцию обратного вызова на '.show()'? –
Вы показываете и скрываете gid загрузки в той же самой процедуре выполнения кода. Между ними не будет рендеринга. Вот почему он не появится. Что делает функция DisplayInnerTable внутри? Есть ли какой-нибудь асинхронный код внутри 'DisplayInnerTable', который заполняет ячейки? –