Funktion über nur einen Link
Nina
- javascript
0 David Tibbe0 Nina0 David Tibbe0 Nina0 David Tibbe0 Nina
hallo leute,
ich habe was zum markieren des hintergrundes geschrieben
<script type="text/javascript">
<!--
function HighlightTag(tagShow,stat) {
if(stat == "an")
{
for(var i = 0; i < document.getElementsByName(tagShow).length; i++) {
document.getElementsByName(tagShow)[i].style.backgroundColor = "#FF9933";
}
}
else
{
for(var i = 0; i < document.getElementsByName(tagShow).length; i++) {
document.getElementsByName(tagShow)[i].style.backgroundColor = "";
}
}
}
//-->
</script>
allerdings muss ich jetzt zum an- und zum ausschalten einen link setzten:
<a href="javascript:HighlightTag('Mittwoch','an')"><b>Mittwoch an</b></a> <a href="javascript:HighlightTag('Mittwoch','aus')"><b>Mittwoch aus</b></a>
kann ich das nicht über einen link machen, sodass sich javascript merkt, dass ich schon angeschltet haben und bei nochmaligem klick auf den link den hintergrund ausschaltet?
danke an alle...
nina
Hallo
<a href="javascript:HighlightTag('Mittwoch','an')"><b>Mittwoch an</b></a> <a href="javascript:HighlightTag('Mittwoch','aus')"><b>Mittwoch aus</b></a>
Das sind keine schönen Links!
<a href="#" onCLick="HighlightTag(...); return false;"> ist viel schöner (s. Archiv und ein paar hreads weiter unten)
kann ich das nicht über einen link machen, sodass sich javascript merkt, dass ich schon angeschltet haben und bei nochmaligem klick auf den link den hintergrund ausschaltet?
Baue dir eine Variabel, die sich den Status merkt und werte diese entsprechend aus und handle danach.
Grüße
David
Hi
Baue dir eine Variabel, die sich den Status merkt und werte diese entsprechend aus und handle danach.
Leider weiss ich garnicht wie ich das machen soll ...
Hast Du einen tipp?
LG Nina
Hallo
<script type="text/javascript">
<!--
var high = false;
function HighlightTag(tagShow) {
if(high) {
for(var i = 0; i < document.getElementsByName(tagShow).length; i++)
document.getElementsByName(tagShow)[i].style.backgroundColor = "#FF9933";
high = false;
} else {
for(var i = 0; i < document.getElementsByName(tagShow).length; i++)
document.getElementsByName(tagShow)[i].style.backgroundColor = "";
high = true;
}
}
//-->
</script>
ungetestet ;)
Du musst dann noch jeweils den 2ten Parameter aus den Links nehmen.
Grüße
David
Hi,
leider läuft das nicht.
var high = false;
Liegt das evtl daran, das ja bei jedem Aufruf der Funktion high=false gesetzt wird??
nina
Hallo
Liegt das evtl daran, das ja bei jedem Aufruf der Funktion high=false gesetzt wird??
Das bestimmtnicht, zumal das ja auch gar nicht der Fall ist.
Poste doch mal nen Link wo man sich das ganze anschauen kann.
Ich hab m das grad mal in klein nachgebaut und da funktioniert es bestens:
<html>
<head>
<script type="text/javascript">
var test = false;
function abc() {
alert(test);
if (test) {
test = false;
} else {
test = true
}
}
</script>
</head>
<body>
<a href="#" onClick="abc(); return false;"> TESTLINK</a>
</body>
</html>
Grüße
David
Hi,
hier mein Quelltext - was mache ICH falsch???
<script type="text/javascript">
<!--
var highStatus = false;
function HighlightTag(tagShow,colorShow) {
tagShowEinzeln=tagShow.split(",");
for(var i1 = 0; i1 < tagShowEinzeln.length; i1++) {
if(highStatus==false){
for(var i = 0; i < document.getElementsByName(tagShowEinzeln[i1]).length; i++) {
document.getElementsByName(tagShowEinzeln[i1])[i].style.backgroundColor = colorShow;
}
}
else{
for(var i = 0; i < document.getElementsByName(tagShowEinzeln[i1]).length; i++) {
document.getElementsByName(tagShowEinzeln[i1])[i].style.backgroundColor = colorShow;
}
}
}
if (highStatus) {
highStatus = false;
} else {
highStatus = true
}
}
//-->
</script>
<a href="#" onclick="HighlightTag('test','#ff0000'); return false;">test1</a>
<table width="100%">
<tr id="test">
<td>test1</td>
</tr>
<tr id="test">
<td>test2</td>
</tr>
</table>
Hallo
if(highStatus==false){
Warum? Mach es doch andersrum, also "if (highStatus)" und dann entsprechend die Abfrage gestalten. Auf diese Weise sparst du einen Vergelich, auch wenns wohl nicht merkbar ist ;)
Ein Paar Code-Stellen
function HighlightTag(tagShow,colorShow) {
[...]
document.getElementsByName(tagShowEinzeln[i1])[i].style.backgroundColor = colorShow;
[...]
else{
[...]
document.getElementsByName(tagShowEinzeln[i1])[i].style.backgroundColor = colorShow;
[...]
<a href="#" onclick="HighlightTag('test','#ff0000'); return false;
Du weist immer Rot als Farbe zu, egal ob die Bedingung nun erfüllt ist oder nicht.
Grüße
David