Mouseclickdauer merken + Textarea

NTDY

Erfahrenes Mitglied
Ich habe folgendes Problem, dass ich etwas einfacher darstelle:

Ich habe eine Textarea und ich habe einen Link_1. Wenn ich auf den Link_1 klicke, dann ändert sich jede halbe Sekunde der Text in der Area, der zu Link_1 gehört.
Bsp.
Code:
Link_1

1/2 Sek                    "Ich"
1 Sek                       "Du"
1 1/2 Sek                  "Er"

Wenn ich die Mousetaste loslasse, dann bleibt jenes Wort stehen, dass gerade in der Textare angezeigt wird.

Wenn ich dann den nächsten Link_2 drücke, dann erscheint nach dem Wort, das gerade durch Link_1 in der Textarea eingesetzt wurde, erscheinen Wörter, die zu Link_2 gehören.

Bsp.
Code:
Link_2

1/2 Sek                    "lerne"
1 Sek                       "lernen"
1 1/2 Sek                  "lerntest"

Es belibt wieder das Wort stehen, dass gerade durch das Drücken der Mosuetaste auf Link_2 dargestellt wird.

Über jeden der den Sinn dieses Programms wissen möchte sei gesagt, dass es sich um eine interaktive Lernhomepage handelt.

Liebe Grüße und vielen Dank.
 
Willst du jetzt wissen, wie du dies anstellen kannst(ich vermisse die Fragestellung in deinem Beitrag).

Wenn ja:
Beim onmousedown starte per setinterval() einen Intervall, in welchem alle 500ms der Text geändert wird.

Beim onmouseup beende per clearIntervall()diesen Intervall.
 
Also ich würde gern wissen wie man dies macht.
Vielleicht ein Minibeispiel mit textarea und mit einem JS-Code Fragment.
Das wäre super. :-)
 
Code:
<html>
<head>
<title>Test</title>
<script type="text/javascript">
<!--
    //Objekt, in dem der jeweilig laufende Timeout gespeichert wird
var objTimeout;

    //Array für die Wörter
arrStrs=
[
    ['ich','du','er'],
    ['lerne','lernen','lerntest']
];

    //Parameter:auslösendes Element,Index des Zielarrays,Index des Zielelementes im ZielArray
function funktion(o,a,e)
{
        //etwaigen laufenden Timeout beenden
    clearTimeout(objTimeout);
    
        //dem auslösenden Element(o) eine ID vergeben, um es beim nächsten Aufruf ansprechen zu können
    o.id="t"+a
    
        //Dem auf das auslösende Element folgenden Element das jeweilige Wort als value zuweisen
        //Achtung:zwischen dem schliessenden Link-Tag und dem Textfeld darf sich nichts befinden, 
        //nicht mal ein Leerzeichen
    o.nextSibling.value=arrStrs[a][e];
    
        //Index des Zielelementes inkrementieren (oder Nullen, falls Letztes)
    if(e==arrStrs[a].length-1)e=-1;
    
        //Timeout starten
    objTimeout=window.setTimeout('funktion(document.getElementById("'+o.id+'"),'+a+','+(e+1)+')',500);
}
//-->
</script>
</head>
<body>
<form>
<a onmousedown="funktion(this,0,0)" onmouseup="clearTimeout(objTimeout);" onmouseout="clearTimeout(objTimeout);">klick1</a><input>
<a onmousedown="funktion(this,1,0)" onmouseup="clearTimeout(objTimeout);" onmouseout="clearTimeout(objTimeout);">klick2</a><input>
</form>
</body>
</html>
 
Vielen Dank für den Code.
Kann man dies auch machen für eine Textarea, also das die Wörter immer in eine Textarea platziert werden?
 
Leider ist das Ergebnis nicht zufriedenstellend, da in dieser Kombination nur Link2 funktioniert. Link1 möchte nicht in die Textarea etwas hineinschreiben.

P.S. Ich will ja nur eine Textarea und nicht zu jedem Link eine Neue.

Code:
<form>
<a onmousedown="funktion(this,0,0)" onmouseup="clearTimeout(objTimeout);" onmouseout="clearTimeout(objTimeout);">klick1</a>
<a onmousedown="funktion(this,1,0)" onmouseup="clearTimeout(objTimeout);" onmouseout="clearTimeout(objTimeout);">klick2</a>
<textarea></textarea>
</form>
 
dann gib dem <textarea> einen Namen und sprich es darüber an.... nen bisserl Eigeninitiative ist hoffentlich nicht zuviel verlangt ;-]
 

Neue Beiträge

Zurück