2015-08-04 2 views
1

теперь у меня есть следующие функции в моем файле JQuery:набор JQuery погрузчик, когда тайм-аут (window.setTimeout)

var timer; 
var delay = 1500; // 1,5 second delay after last input 

$("#qr_data").bind("input", function (e) { 
    window.clearTimeout(timer); 
    timer = window.setTimeout(function(){ 
     // get qr code data 
     var qr_data = $('#qr_data').val(); 

     var data = getVCardData(qr_data); 

     $("#helpqrcode").modal("hide"); 


    }, delay); 
}); 

Как вы можете видеть, у меня есть задержка 1,5 секунды. Возможно ли, что я могу показать загрузчик изображений в то время как 1,5 секунды? В моем HTML у меня есть изображение следующего вида:

<img id="loading" style="display:none; width:200px;" alt="loader" src="recourses/imgs/loader.gif" /> 
+0

'.show' изображение, когда пользователь начинает ввод, затем' .hide' в обратном вызове с таймаутом. – fuyushimoya

+0

@fuyushimoya Что вы имеете в виду с .show и .hide? – nielsv

+0

Это функции jquery для изменения видимости объекта jquery. [.show] (http://api.jquery.com/show/) и [.hide] (http://api.jquery.com/hide/). – fuyushimoya

ответ

2

Изменено изображение в текст, для удобства демонстрации.

var timer; 
 
var delay = 1500; // 1.5 second delay after last input 
 

 
$("#qr_data").bind("input", function (e) { 
 
    window.clearTimeout(timer); 
 
    
 
    // When user stop input, show the image here. 
 
    $("#test").show(); 
 
    
 
    
 
    timer = window.setTimeout(function(){ 
 
     // When the time is 1.5 second after last input, hide the image. 
 
     $("#test").hide(); 
 
     
 
     // get qr code data 
 
     var qr_data = $('#qr_data').val(); 
 
     console.log(qr_data); 
 
     
 
     
 
    }, delay); 
 
});
#test { 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<input type="text" id="qr_data" /> 
 
<div id="test">Typing</div>

0

Вы должны показать изображение загрузки и когда change события вызывается, вы должны скрывать:

$("#qr_data") 
    .one('change', function() { 
    $('#loading').hide(); 
    // do stuff with the value of qr_data 
    }); 
$('#loading').show(); 

Таким образом, вы уверены, что данные действительно изменились