mehrere Counter auf einer Seite

Status
Nicht offen für weitere Antworten.
Naja, sagen wir mal Uni und andere weitaus erfreulichere Ereignisse haben mich ein wenig beschäftigt.

Zum Thema: Du wirst wohl das Countdownscript etwas umschreiben müssen, so dass der Anfangs-Tag nicht mit document.write() ins Document geschrieben wird. Dann klappt's auch mit dem onclick...
 
Also einfache Möglichkeit um Inhalt in ein html-Tag zu bekommen:
HTML:
<div id="foo"></div>

<script type="text/javascript">function schreibe(text) {
    document.getElementById('foo').innerHTML = text;
}</script>

<input type="button" value="Schreibe!" onclick="schreibe('foobar')" />
Das ist alledings nur ein allgemeines Beispiel, aus dem du lernen sollst, das Countdownscript musst du schon selber anpassen.
 
also ich habe das jetzt so gemacht, aber das funktioniert nochnicht so ganz!

Code:
<div id="df"></div>
<script type="text/javascript">
	function discofox(text)
	{
		document.getElementById('df').innerHTML = text;
		document.getElementById('dfb').style.display = 'none';
	}
</script>
<a id="dfb" onclick="discofox('<script type="text/javascript">countdown(10,'alert("Fertig")');</script>')">Erlernen</a>

Also der Button wird korrekt ausgelbendet nach dem Klick, aber der counter wird nicht gestartet!

Ist ja auch Logisch! wegen dem ganzen " und ' gewirwar, aber wie kann ich das dann schreiben?
 
Okay, das ist nicht ganz so sinnvoll, weil du an der ursprünglichen Countdown-Funktion nichts geändert hast.

Das Problem an der ursprünglichen Countdown-Funktion ist wie gesagt das document.write(). document.write() funktioniert nämlich nur, wenn das Dokument noch nicht geladen ist. Ist das Dokument schon gelanden, wird einfach statt des schon geladenen per document.write() ein neues, leeres geöffnet, anstatt dass der Inhalt in das schon bestehende geschrieben wird.
Du musst also das document.wirte() in der countdown-Funktion austauschen und noch einiges andere in dieser Funktion anpassen. Dazu musst du aber erstmal durch diese Countdownfunktion durchsteigen. Es braucht also deutlich mehr Aufwand und Gehirnschmalz von deiner Seite, wenn du verstehst, was ich meine - wenn nicht, ließ dir bitte diesen Thread durch: http://www.tutorials.de/forum/javascript/215197-keine-ahnung-von-javascript.html

Du kannst genre Fragen stellen, aber die sollten halt etwas spezifischer sein. Ich will nur vorbäugen, dass es in dem typischen "ach, keine Lust mehr, bin verzweifelt, hab sowieso nicht so den peil von Javascript, schreib du mir das Script!" endet. Also bitte erstmal ein Bisschen durch die Countdown-Funktion durcharbeiten, dann mein Beispiel nochmal durchdeken und bei beidem ein bisschen SELFHTMLen. Dann wieder fragen, okay?
 
hmm.. ich weiß einfach nicht was ich noch machen soll.. ich bin die ganze zeit am rumbasteln und probieren aber ich komme nicht weiter. Ich habe es nur so hinbekommen, das wenn man auf den Button Klick den Schriftzug ...load... sieht aber der dann nicht anfängt zu zählen!
Außerdem wäre das auch nur bei einem einzigen Button gegangen, oder ich hätte 13 mal das script in der einen datei haben müssen.. naja, sie es dir mal an:

Code:
<script type="text/javascript">
<!--
intObjs = 0;
function nullen(intInt)
{
    return(intInt<10) ? '0' + intInt.toString() : intInt;
}

function countdown(intSeconds, intTarget,strCmd)
{
 document.getElementById('grundschrittbutton').style.display = 'none';
 document.getElementById('figurenbutton').style.display = 'none';
    if(document.getElementById)
        {
            try
                {
                    if(countdown.arguments.length > 2)
                        {

                            intHrs = Math.floor(intSeconds / 3600);
                            intMins= Math.floor((intSeconds % 3600) / 60);
                            intSecs= intSeconds % 60;
                            document.getElementById('count_'+intTarget).firstChild.data =
                                        nullen(intHrs) + ':' +
                                        nullen(intMins)+ ':' +
                                        nullen(intSecs);
                        }
                    else
                        {
			    	strCmd=(countdown.arguments.length>1)?countdown.arguments[1]:'';
			    	intTarget = intObjs;
				document.getElementById(df).innerHTML = <span id="count_'+intObjs+'">...load..</span>;
                            	intObjs++;	
			}
                    if(intSeconds > 0)
                        {
                            window.setTimeout('countdown('+(intSeconds-1)+','+intTarget+',\''+strCmd+'\')',1000);
                        }
                    else
                        {
                            eval(strCmd);
                        }

                 }
             catch(e){}

        }
}
//-->
</script>
Code:
<div id="df"></div>
<a id="grundschrittbutton" onclick="countdown(10,'alert(Fertig)');">Erlernen</a>
 
Status
Nicht offen für weitere Antworten.
Zurück