Во-первых, у вас на кнопке 2 слушателя щелчка - один в html, другой в JS.Обычно это не очень хорошая идея, поэтому давайте удалим html one.
Чем, как было указано, нужно передать функцию, а не строку, в setTimeout
: setTimeout(hide, 1000)
И, наконец, логика нажатия должна быть следующей:
Скрыть контейнер результатов и показать загрузочное изображение.
План скрытия изображения и показаконтейнер за 1 секунду.
Фактически поместите значение в контейнер.
Вот фрагмент:
function showLoading() {
document.getElementById("result_paste").style.display = "none";
document.getElementById("loading").style.display = "block";
}
function showResult() {
document.getElementById("result_paste").style.display = "block";
document.getElementById("loading").style.display = "none";
}
$(function init() {
$('#btn_copy').on('click', function () {
var get_val = $('#result_copy').val();
if (!get_val) {
alert("Please Enter Some Value");
return false;
}
showLoading();
setTimeout(showResult, 1000);
$('#result_paste').text(get_val);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="result_copy">
<input type="button" id="btn_copy" value="OK" />
<br/>
<label>Result:</label>
<div type="text" id="result_paste"></div>
<img id="loading" src="ajax-loader.gif" alt="loading" style="display: none">
(или вот скрипка: https://jsfiddle.net/aofj25bv/3/)