#javascript #jquery #asp.net
#javascript #jquery #asp.net
Вопрос:
У меня есть одно модальное всплывающее окно прогресса, которое показывает прогресс при перезагрузке страницы. Я установил его на главную страницу, и этот скрипт вводит модальное всплывающее окно progress при запуске отправки формы. это как показано ниже :
<script type="text/javascript">
function ShowProgress() {
setTimeout(function () {
var modal = $('<div id="myModal" runat="server"/>');
modal.addClass("modal");
$('body').append(modal);
var loading = $(".loading");
loading.show();
var top = Math.max($(window).height() / 2 - loading[0].offsetHeight / 2, 0);
var left = Math.max($(window).width() / 2 - loading[0].offsetWidth / 2, 0);
loading.css({ top: top, left: left });
}, 200);
}
$('form').live("submit", function () {
ShowProgress();
});
</script>
теперь у меня есть одна страница, которая напрямую унаследована от этого мастера сайта, и я поставил этот скрипт на завершение при успешной загрузке страницы. как нравится :
<script type="text/javascript">
var myModal = $('#myModal').on('shown', function () {
clearTimeout(myModal.data('hideInteval'))
var id = setTimeout(function () {
myModal.modal('hide');
});
myModal.data('hideInteval', id);
})
</script>
но этот скрипт не работает нормально, и после загрузки страницы вы увидите результат, как показано ниже.
что здесь происходит не так, пожалуйста, помогите мне…
Ответ №1:
Отмена тайм-аута в javascript выполняется путем вызова clearTimeout(id)
с id
значением, которое вы получаете в качестве возвращаемого из setTimeout()
.
let myTimeoutId = setTimeout(....); // save the returned id in a variable
clearTimeout(myTimeoutId); // clears the timeout with corresponding id
Комментарии:
1. какое значение я могу установить в setTimeout
2.
setTimeout(your_function, delay_in_ms)