Ho una lista di collegamenti che puntano a pagine html.Aggiungi ritardo prima di inviare una nuova richiesta Ajax utilizzando jquery
<ul id="item-list">
<li><a href="assets/data/item1.html">Item 1</a></li>
<li><a href="assets/data/item2.html">Item 2</a></li>
<li><a href="assets/data/item3.html">Item 3</a></li>
<li><a href="assets/data/item3.html">Item 4</a></li>
</ul>
e ho un javascript (jQuery) vengono accolte wich e aggiungere il codice HTML per il mio documento.
var request;
$('#item-list a').live('mouseover', function(event) {
if (request)
request.abort();
request = null;
request = $.ajax({
url: $(this).attr('href'),
type: 'POST',
success: function(data) {
$('body').append('<div>'+ data +'</div>')
}
});
});
Ho provato a lavorare con setTimeout() ma non funziona come ho previsto.
var request, timeout;
$('#item-list a').live('mouseover', function(event) {
timeout = setTimeout(function(){
if (request)
request.abort();
request = null;
request = $.ajax({
url: $(this).attr('href'),
type: 'POST',
success: function(data) {
$('body').append('<div>'+ data +'</div>')
}
});
}, 2000
);
});
Come faccio a dire a jQuery aspettare (500ms o 1000 ms o ...) al passaggio del mouse prima di inviare la nuova richiesta?
ho ragione di pensare che si desidera effettuare la richiesta solo se l'utente passa sopra il link per più di 2 secondi? – lonesomeday
lonesomeday hai ragione. – gearsdigital