cursor style ändern beim sprung in eine funktion
mikenrw
- javascript
0 ziegenmelker0 mikenrw0 JürgenB0 ziegenmelker
Hallo,
Ich habe folgendes Problem: Beim Anklicken einer Checkbox löse ich ein onclick-event aus, wodurch ich in eine Funktion reinspringe. Diese Funktion braucht ca. 2-3 Sekunden bis die Berechnung abgeschlossen ist. Ich möchte gern, dass wärend er rechnet der cursor style auf wait (Sandbox) wechselt, und anschließend nach Beendigung der Berechnung und Sprung raus aus der Funktion wieder zurück in den Default-Style (Arrow) wechselt. Ich habe schon vieles probiert, aber nichts brachte den Erfolg, er ändert immer erst den Cursor-Style wenn die Berechnung abgeschlossen ist, obwohl ich vor der eigentlichen Berechnungen, den Cursor gewechselt habe.
Jemand eine Idee?
Danke & Grüsse, Michael
Als Beispiel ein kleines Demo-Progi:
<html><head><title>Test</title>
<script type="text/javascript">
function calc() {
var dummy = 0;
for (var i=0; i<1000000;i++) {
for (var z=0; i<1000000;i++) {
dummy = dummy + z + i;
}
}
}
</script>
</head><body>
<form name="Formular" action="">
<input type="checkbox" name="Test" value="Testvalue" onClick="calc()"> Only a test
</form>
</body></html>
Hallo,
Hallo,
Ich habe folgendes Problem: Beim Anklicken einer Checkbox löse ich ein onclick-event aus, wodurch ich in eine Funktion reinspringe. Diese Funktion braucht ca. 2-3 Sekunden bis die Berechnung abgeschlossen ist. Ich möchte gern, dass wärend er rechnet der cursor style auf wait (Sandbox) wechselt, und anschließend nach Beendigung der Berechnung und Sprung raus aus der Funktion wieder zurück in den Default-Style (Arrow) wechselt. Ich habe schon vieles probiert, aber nichts brachte den Erfolg, er ändert immer erst den Cursor-Style wenn die Berechnung abgeschlossen ist, obwohl ich vor der eigentlichen Berechnungen, den Cursor gewechselt habe.
in deinem Beispiel habe ich nichts gefunden, was nach einer Änderung des Cursors aussieht. Als ich das aus ähnlichen Gründen machen mußte, habe ich dem Body-Element den style cursor=wait verpasst und hinterher wieder auf normal gesetzt.
document.getElementsByTagName('body')[0].style.cursor='wait'
.......
document.getElementsByTagName('body')[0].style.cursor='auto'
cu,
ziegenmelker
in deinem Beispiel habe ich nichts gefunden, was nach einer Änderung des Cursors aussieht. Als ich das aus ähnlichen Gründen machen mußte, habe ich dem Body-Element den style cursor=wait verpasst und hinterher wieder auf normal gesetzt.
document.getElementsByTagName('body')[0].style.cursor='wait'
.......
document.getElementsByTagName('body')[0].style.cursor='auto'cu,
ziegenmelker
Hallo,
das funktioniert leider nicht, das wäre ja zu trivial :-)
Er ignoriert das erste:
document.getElementsByTagName('body')[0].style.cursor='wait'
du kannst es gerne ausprobieren. Er fängt halt erst an zu zeichnen wenn er mit der Berechnung fertig ist, das liegt daran das javascript wärend er rechnet den Cursor nicht neu malen will :-)
function calc() {
document.getElementsByTagName('body')[0].style.cursor='wait';
var dummy = 0;
for (var i=0; i<1000000;i++) {
for (var z=0; i<1000000;i++) {
dummy = dummy + z + i;
}
}
document.getElementsByTagName('body')[0].style.cursor='auto'
}
Hallo mikenrw,
versuch mal, den Cursor sofort zu ändern und die Rechenfunktion mit setTimeout zu starten.
Gruß, Jürgen
Hallo,
das funktioniert leider nicht, das wäre ja zu trivial :-)
offenbar ist das so. :(
Er ignoriert das erste:
document.getElementsByTagName('body')[0].style.cursor='wait'du kannst es gerne ausprobieren. Er fängt halt erst an zu zeichnen wenn er mit der Berechnung fertig ist, das liegt daran das javascript wärend er rechnet den Cursor nicht neu malen will :-)
Ich habe sogar "cursor='wait'" auf den onmousedown-Event gelegt und die Funktion calc() auf den onmouseup-Event: Same Procedure, erst wird gerechnet. Während andererseits das "Sichtbarmachen" eines div-Elements sofort ausgeführt wird. Scheint, als ob bestimmte GUI-Sachen in eine Pipe gelegt werden und bis zu einem bestimmten Moment warten müssen, u.U. auch abhängig von der Prozessorbelastung.
cu,
ziegenmelker