Bepaalde elementen uitsluiten van page refresh?

Status
Niet open voor verdere reacties.

donboe

Nieuwe gebruiker
Lid geworden
18 jul 2014
Berichten
4
Ik gebruik de volgende functie on enerzijds content te laden ($.get) en anderzijds on de geladen content iedere x seconden te verversen:
[JS]
$(function () {
var timer,
updateContent;
function resetTimer() {
if (timer) {
window.clearTimeout(timer);
}
timer = window.setTimeout(updateContent, 2000);
}
updateContent = function () {
resetTimer();
$.get('modules/berichten.php', function (data) {
$('#main').html(data);
});
};
updateContent();
$(document.body).on('mousemove keydown', resetTimer);
});
[/JS]
Er zijn echter twee elementen in de content die geladen wordt die ik zou willen uitsluiten van het verversen, namelijk een h1 tag en een form. Is dit mogelijk op basis van deze functie?

Bij voorbaat dank
 
Is het ook mogelijk om de timer te stoppen als een bepaald veld in focus is?
 
Om antwoord te geven op je initiele vraag; als je zaken wilt uitsluiten moet je de "selector" specifieker maken. Je vervangt nu de inhoud van #main met de opgevraagde content. Dan zou je binnen #main niet die H1 en het formulier moeten plaatsen.

Wil je de timer helemaal stoppen of resetten?

Je zult in ieder geval het focus-event af moeten vangen:
[js]$("{selector}").on('focus', window.clearTimeout(timer));[/js]
 
Om antwoord te geven op je initiele vraag; als je zaken wilt uitsluiten moet je de "selector" specifieker maken. Je vervangt nu de inhoud van #main met de opgevraagde content. Dan zou je binnen #main niet die H1 en het formulier moeten plaatsen.
Dat heb ik uiteindelijk ook gedaan. Ik heb nog geprobeerd om in plaats van elementen uit te sluiten juist een bepaald element te targetten op de volgende manier:
[JS]
updateContent = function () {
resetTimer();
$.get('modules/berichten.php', function (data) {
var resultDom = $(data);
$('#main .berichten').html($('#main .berichten', resultDom).html());
});
};
[/JS]

maar dat werkte dus ook niet

Wil je de timer helemaal stoppen of resetten?

Het mooiste zou zijn dat wanneer het betreffende form veld in focus is de timer wordt gestopt en dat de refresh functie pas weer in werking treedt als het veld niet meer in focus is of wanneer het formulier wordt gesubmit

Je zult in ieder geval het focus-event af moeten vangen:
[js]$("{selector}").on('focus', window.clearTimeout(timer));[/js]

Ik heb jou suggestie helemaal onderaan in de functie toegevoegd:
[JS]$("{#bericht_form :input}").on('focus', window.clearTimeout(timer));[/JS]
Maar zelfs als het betreffende tekst veld in focus is blijft de pagina elke 10 seconden verversen.

Hoe kan ik dit ondervangen?

Alvast bedankt
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan