• Aktualisierte Forenregeln

    Eine kleine Änderung hat es im Bereich Forenregeln unter Abschnitt 2 gegeben, wo wir nun explizit darauf verweisen, dass Forenkommentare in unserer Heftrubrik Leserbriefe landen können.

    Forenregeln


    Vielen Dank

Profi gesucht -- Javascript

N-Traxx

Spiele-Enthusiast/in
Mitglied seit
26.01.2004
Beiträge
1.688
Reaktionspunkte
0
Hi

Ich hab schon wieder mal ein kleines Problem.
Ich hab eine normale <table>, jetzt bräuchte ich eine Javascript funktion die mit folgendes macht.

wenn ich bei einem Klick auf eine <td></td> Cell sollte der Text in der Cell in eine Textbox geschrieben werden. Wenn man mit der rechten Moustaste auf die Cell Klickt sollte der Text in eine andere Textbox geschrieben werden.

Leider hab ich nicht die kleinste Ahnung von Javascript und es scheitert schon an der richtigen Syntax. Ich hab versucht mich einzuarbeiten aber jetzt hab ich Kopfschmerzen und komm nicht mehr weiter. :S

Ich hoffe hier gibt es ein paar hilfsbereite Scriptprofis. =)

Vielen vielen dank schonmal im vorraus.

mfg
 
Poste doch mal dein Gerüst an HTML, dass man das mit den entsprechenden Funktionen ausschmücken kann.
 
klausbyte am 18.06.2008 11:48 schrieb:
Poste doch mal dein Gerüst an HTML, dass man das mit den entsprechenden Funktionen ausschmücken kann.
Den ganzen Code kann ich leider nciht Posten, der hat inzwischen über 1500 Zeilen :-D

EDIT:

Anders:
Code:
<input name="txt1" type="text"  id="txt1"  />
<input name="txt2" type="text"  id="txt2"  />


<tabel>
<tr>
<td>Textblabla</td>
</tr>
</table>



Bei linksklick auf <td> der Text in der <td> in
Input(txt1) bei rechtsklick in input(txt2)
 
Am besten wäre es so in der art.

Code:
<script language="javascript">
Funktion{
if sender = Maus links then
txt1.text = sender.text
elseif sender = Maus rechts then
txt2.text = sender.text
end if
}
</script>
<input name="txt1" type="text"  id="txt1"  />
<input name="txt2" type="text"  id="txt2"  />


<tabel>
<tr>
<td OnClick="Funktion">Textblabla</td>
</tr>
</table>
 
Ich habs fast geschaft, nur schaff ich es nicht die Button abzufangen. Ich hab versucht so eine Rechtsklicksperre umzuschreiben. aber das funzt irgendwie nicht.
Code:
<td onclick="Click(this.id)" id="Text" >Text</td>

  function Click(s) {

   if (document.layers){ window.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP) }
   if (event.button==1) { document.Form1.txtS1.value = s }
   if (event.button==2) { alert('Button 2') }
   
   
}
 
N-Traxx am 18.06.2008 15:16 schrieb:
Ich habs fast geschaft, nur schaff ich es nicht die Button abzufangen. Ich hab versucht so eine Rechtsklicksperre umzuschreiben. aber das funzt irgendwie nicht.
Code:
<td onclick="Click(this.id)" id="Text" >Text</td>

  function Click(s) {

   if (document.layers){ window.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP) }
   if (event.button==1) { alert('Button 1') }
   if (event.button==2) { alert('Button 2') }
   
   document.Form1.txtS1.value = s
}

Code:
<td onclick="Click(this.value)" id="Text" >Text</td>

  function Click(s) {

   if (document.layers){ window.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP) }
   if (event.button==1) { document.Form1.txtS1.value = s}
   if (event.button==2) { document.Form2.txtS2.value = s}
   
   
}

Ist jetz nur ausm Kopf. Du musst den Value vom aktuellen Objekt (also dem td) übergeben, seine id ist recht egal wenn die Funktion seinen wert schon kennt.
Hoffe mal das ich die Formulare richtig angepasst hab, aber das System sollteste verstanden haben oder?
 
klausbyte am 18.06.2008 15:21 schrieb:
Code:
<td onclick="Click(this.value)" id="Text" >Text</td>

  function Click(s) {

   if (document.layers){ window.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP) }
   if (event.button==1) { document.Form1.txtS1.value = s}
   if (event.button==2) { document.Form2.txtS2.value = s}
   
   
}

Ist jetz nur ausm Kopf. Du musst den Value vom aktuellen Objekt (also dem td) übergeben, seine id ist recht egal wenn die Funktion seinen wert schon kennt.
Hoffe mal das ich die Formulare richtig angepasst hab, aber das System sollteste verstanden haben oder?

Ja das ist schon klar, mit einem einfachen Klick funzt das auch ohne Probleme. Das blöde ist nur das bei einem Rechtsklick das normale kontextmenü kommt und nicht der if (event.button==2) { document.Form2.txtS2.value = s} ausgeführt wird, als ich komm überhaupt nicht in die abfrage.
 
Probiers mal mit nem return false nach dem funktionsaurfurf. So verhindert man zumindest das klicken eines links, wenn man da ein onclick drinhat.
 
klausbyte am 18.06.2008 15:33 schrieb:
Probiers mal mit nem return false nach dem funktionsaurfurf. So verhindert man zumindest das klicken eines links, wenn man da ein onclick drinhat.

Wie meinst du das ? Gleich in dem td Tag oder in der Function als erste Zeile ?
 
N-Traxx am 18.06.2008 15:35 schrieb:
klausbyte am 18.06.2008 15:33 schrieb:
Probiers mal mit nem return false nach dem funktionsaurfurf. So verhindert man zumindest das klicken eines links, wenn man da ein onclick drinhat.

Wie meinst du das ? Gleich in dem td Tag oder in der Function als erste Zeile ?
In der Funktion in der ersten Zeile währ blöd :B Dann läuft sie ja nicht mehr durch.


onclick="Click(this.value); return false;"

So hab ich das immer praktiziert.

Oder am Ende der Funktion return false zurückgeben. So kann man z.b. auch Formulare evaluieren, die werden dann nicht abgeschickt wenn da nicht true zurückkommt auf den Button.
 
Also wenn man das so macht funzt das, leider überrall auf der Seite, egal wo man hinklickt.

Code:
if (document.layers){ window.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP) }  

function click() { 
if (event.button==1) { alert('Button 1') } 
if (event.button==2) { alert('Button 2') }
}
document.onmousedown=click
 
N-Traxx am 18.06.2008 16:13 schrieb:
Also wenn man das so macht funzt das, leider überrall auf der Seite, egal wo man hinklickt.

Code:
if (document.layers){ window.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP) }  

function click() { 
if (event.button==1) { alert('Button 1') } 
if (event.button==2) { alert('Button 2') }
}
document.onmousedown=click
Wo hast du denn diesen Code? Wenn der im Kopf oder einer allgemeinen Javascript-deklaration geht, ist klar. mach das doch einfach mit dem onclick im element für das es gelten soll mit return false dahinter, wie von mir geschrieben.
 
klausbyte am 18.06.2008 16:54 schrieb:
Wo hast du denn diesen Code? Wenn der im Kopf oder einer allgemeinen Javascript-deklaration geht, ist klar. mach das doch einfach mit dem onclick im element für das es gelten soll mit return false dahinter, wie von mir geschrieben.

Jetzt hab ich es direkt ins OnKlick ereignis geschrieben, funzt auch ned.
Der meckert immer das ein ; fehlt.

onclick="java script:if (event.button==1){alert('Button 1')}; if (event.button==2){alert('Button 2')};return false;"

Ich hasse java
 
N-Traxx am 18.06.2008 18:54 schrieb:
klausbyte am 18.06.2008 16:54 schrieb:
Wo hast du denn diesen Code? Wenn der im Kopf oder einer allgemeinen Javascript-deklaration geht, ist klar. mach das doch einfach mit dem onclick im element für das es gelten soll mit return false dahinter, wie von mir geschrieben.

Jetzt hab ich es direkt ins OnKlick ereignis geschrieben, funzt auch ned.
Der meckert immer das ein ; fehlt.

onclick="java script:if (event.button==1){alert('Button 1')}; if (event.button==2){alert('Button 2')};return false;"

Ich hasse java
javascript muss zusammengeschrieben werden. Fällt mir da mal als erstes auf.
 
klausbyte am 18.06.2008 19:00 schrieb:
javascript muss zusammengeschrieben werden. Fällt mir da mal als erstes auf.

Jetzt ist der ; Fehler weg, nur es funtzt immer noch nicht.
 
N-Traxx am 18.06.2008 19:05 schrieb:
klausbyte am 18.06.2008 19:00 schrieb:
javascript muss zusammengeschrieben werden. Fällt mir da mal als erstes auf.

Jetzt ist der ; Fehler weg, nur es funtzt immer noch nicht.
Kommt ein rechts Mausmenü noch?

Evtl. stimmt auch das mit dem event nicht, das kenne ich persönlich noch gar nicht, bzw. habs nie so gebraucht :)
 
klausbyte am 18.06.2008 19:15 schrieb:
Kommt ein rechts Mausmenü noch?

Evtl. stimmt auch das mit dem event nicht, das kenne ich persönlich noch gar nicht, bzw. habs nie so gebraucht :)

jup, das ist noch da. Es passiert einfach garnichts.
 
N-Traxx am 18.06.2008 19:27 schrieb:
klausbyte am 18.06.2008 19:15 schrieb:
Kommt ein rechts Mausmenü noch?

Evtl. stimmt auch das mit dem event nicht, das kenne ich persönlich noch gar nicht, bzw. habs nie so gebraucht :)

jup, das ist noch da. Es passiert einfach garnichts.

Jetzt funktioniert es, das Problem war das die Function nicht beim OnClick aufgerufen werden muss sondern beim OnMouseDown.
 
N-Traxx am 19.06.2008 09:18 schrieb:
N-Traxx am 18.06.2008 19:27 schrieb:
klausbyte am 18.06.2008 19:15 schrieb:
Kommt ein rechts Mausmenü noch?

Evtl. stimmt auch das mit dem event nicht, das kenne ich persönlich noch gar nicht, bzw. habs nie so gebraucht :)

jup, das ist noch da. Es passiert einfach garnichts.

Jetzt funktioniert es, das Problem war das die Function nicht beim OnClick aufgerufen werden muss sondern beim OnMouseDown.
Ah! Da hast wohl du (und auch ich ^^) den Wald vor lauter Ereignissen nicht gesehen :)
 
Zurück