Jquery refresh div sectie met buttons
Wat doe ik verkeerd!?
myScript.js
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var timeout;
$(document).ready( function(){
$(' #auto').load('load.php');
refresh();
startReload();
});
function refresh()
{
setTimeout( function() {
$(' #auto').load('load.php');
refresh();
}, 5000);
}
function stopReload() {
clearTimeout(timeout);
}
function startReload() {
timeout = setTimeout(function() { refresh(); }, 5000);
}
$(document).ready( function(){
$(' #auto').load('load.php');
refresh();
startReload();
});
function refresh()
{
setTimeout( function() {
$(' #auto').load('load.php');
refresh();
}, 5000);
}
function stopReload() {
clearTimeout(timeout);
}
function startReload() {
timeout = setTimeout(function() { refresh(); }, 5000);
}
test.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html>
<head>
<script src="http://code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="myScript.js"></script>
</head>
<body>
<div>
<div id="auto"></div>
<br></br>
<button onclick="stopReload();">Stop</button>
<button onclick="startReload();">Start</button>
</div>
</body>
</html>
<head>
<script src="http://code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="myScript.js"></script>
</head>
<body>
<div>
<div id="auto"></div>
<br></br>
<button onclick="stopReload();">Stop</button>
<button onclick="startReload();">Start</button>
</div>
</body>
</html>
Als dit script werkende is plaats ik het graag in de sectie PHP Scripts(Jquery refresh div sectie met start/stop buttons).
Gewijzigd op 18/10/2017 18:39:42 door Lorenzho Dealorde
Je moet van "timeout" een globale variabele maken. Dus ergens bovenaan in je code . anders is alleen bekend binnen je functie.
heb ik al geprobeert maar dan werkt de buttons nog steeds niet, ook weer geen fout melding.
ook niet, ook weer geen foutmelding.
Gewijzigd op 18/10/2017 18:10:52 door Lorenzho Dealorde
Je zet de timeout verkeerd. Als je een timeout binnen een timeout doet zoals je nu in je code hebt staan wordt de binnenste timeout nooit gestopt.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
var timeout;
$(document).ready(function () {
startReload();
});
function stopReload() {
clearTimeout(timeout);
}
function startReload() {
timeout = setTimeout(function() { window.location.reload(); }, 5000);
}
$(document).ready(function () {
startReload();
});
function stopReload() {
clearTimeout(timeout);
}
function startReload() {
timeout = setTimeout(function() { window.location.reload(); }, 5000);
}
Gewijzigd op 18/10/2017 18:51:09 door Lorenzho Dealorde
Zie je serieus niet dat je 2 timeouts set in je andere script? Kijk eens naar je refresh() functie.
Ik heb het volgende gedaan maar dan doet de buttons het ook niet:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var timeout;
$(document).ready( function(){
$(' #auto').load('load.php');
refresh();
startReload();
});
function refresh()
{
setTimeout( function() {
$(' #auto').load('load.php');
refresh();
}, 5000);
}
function stopReload() {
clearTimeout(timeout);
}
function startReload() {
timeout = refresh();
}
$(document).ready( function(){
$(' #auto').load('load.php');
refresh();
startReload();
});
function refresh()
{
setTimeout( function() {
$(' #auto').load('load.php');
refresh();
}, 5000);
}
function stopReload() {
clearTimeout(timeout);
}
function startReload() {
timeout = refresh();
}
Gewijzigd op 18/10/2017 20:03:32 door Lorenzho Dealorde
Als je nou in de refresh functie zou zeggen return setTimeout.... (dus even het woorde return toevoegen aan het begin) zou dat werken ja. Nu lijkt het alsof je gewoon maar wat aan het proberen bent zonder een idee te hebben wat de reden zou zijn dat dat zou werken.
Ik heb de return ervoor gezet maar de buttons doen het nog niet. Mijn excusses dat ik nieuw ben in javascript en dat dit mijn eerst script is in js.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var timeout;
$(document).ready( function(){
$(' #auto').load('load.php');
refresh();
startReload();
});
function refresh()
{
timeout = setTimeout( function() {
$(' #auto').load('load.php');
refresh();
}, 5000);
}
function stopReload() {
clearTimeout(timeout);
}
function startReload() {
refresh();
}
$(document).ready( function(){
$(' #auto').load('load.php');
refresh();
startReload();
});
function refresh()
{
timeout = setTimeout( function() {
$(' #auto').load('load.php');
refresh();
}, 5000);
}
function stopReload() {
clearTimeout(timeout);
}
function startReload() {
refresh();
}
en ik snap het ook wat je verandert hebt.
i.p.v. dat de timeout in de startReload functie wordt aangegeven, gebeurt dat nu bij de refresh functie.
want daarvoor wist de refresh fuctie niet eens af van een startReload fuctie en andersom ook als ik het goed hebt.
Om een timeout te kunnen stoppen moet de referentie bekend zijn. Als deze niet gevraagd wordt kan de timeout niet gestopt worden. Feitelijk kan regel 4 uit het script ook gewoon weg zonder de werking te veranderen.