Tabellenfelder markieren

so, ich hab mir schnell erlaubt, das problem zu lösen :)
hier der code(danke an nuinmundo für die idee, obwohl ich eigentlich die selbe hatte, nur nicht mit variablen ;-))
Code:
<html>
<head>
<title>asfd</title>
<script type="text/javascript">
<!--
var pressed;
var farbe;
function einfaerben(id,status) {
if (status != "move") {
	if (document.getElementById(id).style.backgroundColor == "")
		farbe= "#000";
	else
		farbe = "";
}
if (status == "pressed")
	pressed = true;
else if(status == "up")
	pressed = false;
if (pressed) {
	document.getElementById(id).style.backgroundColor = farbe;
}
}
//-->
</script>
</head>
<body onMouseUp="pressed=false">
<table width="100%" border="1">
<tr>
<td id="1" onMouseDown="javascript:einfaerben(this.id,'pressed')" onmousemove="einfaerben(this.id,'move')" onMouseUp="einfaerben(this.id,'up')">asf</td>
</tr>
<tr>
<td id="2" onMouseDown="javascript:einfaerben(this.id,'pressed')" onmousemove="einfaerben(this.id,'move')" onMouseUp="einfaerben(this.id,'up')">dsafasdfjksafj </td>
</tr>
</table>
</body>
</html>

ach ja und javascript muss zusammen geschrieben werden!
 
Zuletzt bearbeitet:
@nuinmundo:
was funzt denn ned?? du musst einfach javascript zusammenschreiben oder halt weglassen, wie du gesagt hast(aber sowiel ich weiss sollte man es schon schreiben-->w3c). musst halt aufpassen, dass du in den zellen die maustaste loslässt :) sonst muss man halt noch was schreiben, wo überprüft wird, ob die maus die tabelle verlassen hat. wenn ja wird pressed auf false gestellt und alle sind glücklich ;-)
edit: man kanns ja auch kompliziert machen... einfach noch im body tab <body onMouseUp="pressed=false"> eingeben und es funzt:)
 
Zuletzt bearbeitet:
So, ich hab nun auch ein wenig am Code rumgespielt und bin zum folgenden ergebnis gekommen:
Code:
<html>
<head>
<title>asfd</title>
<script type="text/javascript">
<!--
var klick, geklickt;
klick = false;
function klick_activ(id,jein)
	{
	if (jein == 'ja'){
		if (geklickt == 1){leeren(4);}
		klick = true;
		window.document.getElementById(id).style.backgroundColor = "#FF0000";
		}
	else{
		klick = false;
		geklickt = 1;
		//window.document.getElementById(id).style.backgroundColor = "";
		}
	}
function test(id)
	{
	if (klick == true){
		if (window.document.getElementById(id).style.backgroundColor == ""){
			window.document.getElementById(id).style.backgroundColor = "#FF0000";}
		else{window.document.getElementById(id).style.backgroundColor = "#FF0000";}
		}
	}
function leeren(elemente)
	{
	var i;
	for (i=0;i<=elemente;i++){
		window.document.getElementById(i).style.backgroundColor = "";
		}
	}
//-->
</script>
</head>
<body onselectstart="return false">
<table width="400" border="1">
  <tr>
    <td id="0" onMouseDown="klick_activ(id,'ja');" onMouseUp="klick_activ(id,'nein');" onMouseOver="test(id);">&nbsp;</td>
  </tr>
  <tr>
    <td id="1" onMouseDown="klick_activ(id,'ja');" onMouseUp="klick_activ(id,'nein');" onMouseOver="test(id);">&nbsp;</td>
  </tr>
  <tr>
    <td id="2" onMouseDown="klick_activ(id,'ja');" onMouseUp="klick_activ(id,'nein');" onMouseOver="test(id);">&nbsp;</td>
  </tr>
  <tr>
    <td id="3" onMouseDown="klick_activ(id,'ja');" onMouseUp="klick_activ(id,'nein');" onMouseOver="test(id);">&nbsp;</td>
  </tr>
  <tr>
    <td id="4" onMouseDown="klick_activ(id,'ja');" onMouseUp="klick_activ(id,'nein');" onMouseOver="test(id);">&nbsp;</td>
  </tr>
</table>

</body>
</html>

Ich hab da aber noch eine sehr sehr wichtige/s Frage/Problem:
Kann ich die Tabellen mit den IDs auch fragen und vergleichen welchen Farbwert die Momentan haben? Ich hab das Probiert aber habs nicht gepackt. Der Sinn des ganzen ist ja, dass er das ganze Am Schluss auch auswertet z.B.: Eine for Schleife die die ganze Tabelle durchrennt und überprüft welches ne Farbe hat und welches nicht. Die mit Farbe werden dann weiter bearbeitet.
 
@DerGugi:
Ne klappt so irgendwie nicht!
Code:
<html>
<head>
<script type="text/javascript">
function test(id){
		if (document.getElementById(id).style.backgroundColor == "#ff0000")
		{
		alert("jaja, du hast da ne Farbe!");
		}
	}
</script>
</head>
<body onselectstart="return false">
<table width="400" border="1">
  <tr>
    <td id="1" bgcolor="#00CC99" onClick="test(id);">&nbsp;</td>
  </tr>
  <tr>
    <td id="2" onClick="test(id);">&nbsp;</td>
  </tr>
</table>
</body>
</html>
 
sicher klappt das. ich sagte dir doch, du kannst nicht ID übergeben! du musst schon die Nummer oder den Wert übergeben, sonst weiss deine funktion gar nicht, welche zelle.

hier: <td id="1" bgcolor="#00CC99" onClick="test('1')"> </td>
oder <td id="1" bgcolor="#00CC99" onClick="test(this.id)"> </td>

edit: ah ja: und wie willst du mit diesem skript überhaupt schauen, ob es funzt??? du hast ja gar keine rote zelle!!!!!!!!
machs so: <td id="1" style="background-color:#ff0000;" onClick="test(this.id)">sadf </td>
oder nimm einfach mein code, den ich oben gepostet habe, der funktioniert!
 
Zuletzt bearbeitet:
wer sagt das man ID nicht übergeben kann???? ID kann man übergen!
Ich habs doch vorher gemacht (!! siehe meinen Vorletzten Code !!)...

wie es aussieht kann man nur nicht überprüfen welchen Farbwert die Zelle hat.
 
... aber dann müsste das ja funtzen: (BEI MIR KLAPPTS NICHT)

Code:
<html>
<head>
<script type="text/javascript">
function test(id)
	{
		if (document.getElementById(id).style.backgroundColor == "#ff0000")
		{
		alert("jaja, du hast da ne Farbe!");
		}
	}
</script>
</head>
<body onselectstart="return false">
<table width="400" border="1">
  <tr>
    <td id="0" bgcolor="#ff0000" onClick="test('0');">&nbsp;</td>
  </tr>
    <tr>
    <td id="1" bgcolor="#ff0000" onClick="test('1');">&nbsp;</td>
  </tr>
  <tr>
    <td id="2" bgcolor="" onClick="test('2');">&nbsp;</td>
  </tr>
</table>
</body>
</html>

Ähhh, brauche Hilfe!

EDIT: Kopiert euch mal diesen Code und versucht es mal bitte bei euch. Ich bin schon verzweifelt :(
 
Zuletzt bearbeitet:
PHP:
<html>
<head>
<script type="text/javascript">
function test(id)
	{
		if (document.getElementById(id).style.backgroundColor == "#ff0000")
		{
		alert("jaja, du hast da ne Farbe!");
		}
	}
</script>
</head>
<body onselectstart="return false">
<table width="400" border="1">
  <tr>
    <td id="0" style="background-color:#ff0000;" onClick="test('0');">&nbsp;</td>
  </tr>
    <tr>
    <td id="1" style="background-color:#ff0000;" onClick="test('1');">&nbsp;</td>
  </tr>
  <tr>
    <td id="2" onClick="test('2');">&nbsp;</td>
  </tr>
</table>
</body>
</html>
So funzt es!
Der Fehler: Du hattest leere Zellen und du hast eine CSS-Eigenschaft ausgelesen, die du garnicht gesetzt hast.
 

Neue Beiträge

Zurück