Tämä liittyy js + jqueryyn, en tiedä termiä mutta jos teen yleisen funktion:
$('.form-info').on("change", function() {niin miten saan tuon siten että jokainen input jossa kyseinen luokka on käynnistää kyseisen funktion täysin omassa scopessaan ?
Eli jos tuota jatkaa niin että tulisi timeout, eli funktio odottaa hetken ennen jatkamista ja jos se käynnistyy _samasta_ elementistä uudestaan niin timeout resetoidaan. Mutta jokaiselle elementille täytyisi olla oma timeout-muuttujansa !
Tälle joku viisaampi varmasti osaisi kertoa jonkin terminkin...
tämä ei siis toiminut...
$('.form-info').on("change", function() {
clearTimeout(MainInputSaveTimeOut);
var fieldTmpTmp=$(this);
MainInputSaveTimeOut = setTimeout(function() {
formInfoSave(fieldTmpTmp);
....Tässä yksi tapa.
$(".form-info").each(function () {
var timeout = null;
$(this).on("change", function () {
clearTimeout(timeout);
timeout = setTimeout(function () {
// ...
}, 1337);
});
});Jos omalle scopelle ei ole muuta tarvetta kuin timeoutin id:n säilytys erikseen joka elementille, voit käyttää samaa funktiota ja käyttää data-funktiota.
$(".form-info").on("change", function() {
clearTimeout($(this).data("timeout"));
$(this).data("timeout", setTimeout(foo));
});jlaire: eikö tuo var timeout = null jo resetoi tuon timeoutin ?
Kiitos joka tapauksessa vastauksista, molemmat vaikuttaa hyviltä
Aihe on jo aika vanha, joten et voi enää vastata siihen.