Un calcolo è basato sull'input dell'utente e il criterio è utilizzare keyup
anziché change
o blur
.Come implementare il rimbalzo fn in evento jupery keyup?
Il problema è che il codice si attiva ogni volta che si preme il tasto e io ho bisogno di ritardare e sparare solo una volta dopo un timeout di 500 ms. Il mio esempio qui sotto ovviamente non funziona, violino allegato.
Ho trovato la funzione dbounce
di David Walsh, ma non riesco a capire come implementarla.
HTML:
<input type="text" />
<input type="text" id="n2" class="num" value="17" disabled />
<input type="text" id="n3" class="num" value="32" disabled />
JavaScript/jQuery:
$('input').keyup(function(){
var $this=$(this);
setTimeout(function(){
var n1 = $this.val();
var n2 = $('#n2').val();
var n3 = $('#n3').val();
var calc = n1 * n2 * n3;
alert(calc);
},500);
});
//http://davidwalsh.name/javascript-debounce-function
function debounce(func, wait, immediate) {
var timeout;
return function() {
var context = this, args = arguments;
var later = function() {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
};
hehe grazie felice :-) codifica – squiroid
Quindi la risposta viene illustrato come utilizzare una funzione che non appartiene a JS libreria standard e la cui attuazione non è prevista: -S – zerkms
grande, questo ha funzionato per me con sottolineatura di Funzione '_.debounce()'. – nnyby