PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : onclick/?


Meister Knorke
20.10.2003, 17:41
Hi!
ich bräuchte das gegenstück zu onclick=""
Denn wenn ich auf das nächste klick bleibt das fenster das sich geöffnet hat beim 1. klick trotzdem offen!
und des soll sich sofort schließen wenn ich auf etwas anderes klicke!

???
Quelltext:
<div align="left" id=div1 onclick="document.Link10.src=bild20.src;afficheCalque('div1')"
onmouseover="document.Link10.src=bild20.src" style="position:absolute; top:222; left:300; layer-background-color:#000000; background-color:#000000; width:496; height:80; padding:8; border-width:2; border-color:#ED1C24; border-style:dashed; display:none">


z3r0x
20.10.2003, 19:00
Hi,

ein direktes Gegenstueck zu OnClick gibt es nicht, da ein 'Click' das druecken- und loesen der Maustaste beinhaltet.

Ich weiß zwar nicht genau was Du machen willst, aber probiere es doch mal mit onMousedown und onMouseup.


Gruß z3r0x

Meister Knorke
20.10.2003, 19:28
du kannst das problem unter
http://www.oxygen-rock.com/members.html
begutachten :)
schau mal vielleicht hilft dir des was!
da sieht man wenn man auf die beiden namen klickt das problem ganz deutlich
und onmousedown-up hat leider nicht geholfen!
trotzdem thx

Felix Kaiser
20.10.2003, 22:41
Wenn du ein Fenster öffnest, merke in einer globalerreichbaren Variable die Objektinstanz zu diesem Fenster. Wenn wieder ein Fenster geöffnet wird, schaust du einfach, ob du eine gültige Objektinstanz hast (Startwert sollte auf null gesetzt werden) und blendest das alte aus, bevor du das neue einblendest und diese globale Variable aktualisierst. Eigentlich ganz einfach.

Meister Knorke
21.10.2003, 22:19
sry ich versteh zwar was du meinst aber umsetzten kann ichs leider ned wär coll wenn du mir es wenn du mal zeit hast in meinen code einbaust!

thx

Jan Krüger
21.10.2003, 22:51
Dieses Forum ist für Selbstmacher. Den Ansatz hat dir Felix erklärt, die nötigen Kenntnisse in JavaScript können dir http://selfhtml.teamone.de/ sowie http://w3schools.com/ und evtl. andere Quellen vermitteln.

Meister Knorke
24.10.2003, 12:45
leider nichts gefunden!!!!

Felix Kaiser
24.10.2003, 15:42
Du sollst auch nicht nach fertigen Skripten suchen, du sollst JavaScript lernen.

Meister Knorke
26.10.2003, 22:53
Ah jetzt hab ichs endlich geschafft!
Wurde aber darauf hingewiesen das mein dhtml script mit mozilla nicht funktioniert!
Kann mir irgendjemand sagen was dafür auschlaggebend ist das dieses script nicht mit mozilla funktioniert?
Was müsste ich ändern???Was ist davon vielleicht veraltet?

Quelltext:
<script type="text/javascript">
<!--
ie4 = ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4 ))
ns4 = ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) >= 4 ))

if (ns4) {
layerRef="document.layers";
styleRef="";
} else {
layerRef="document.all";
styleRef=".style";
}

function afficheCalque(calque)
{
eval(layerRef + '["' + calque +'"]' + styleRef + '.display = "block"');
}

function cacheCalque(calque)
{
eval(layerRef + '["' + calque +'"]' + styleRef + '.display = "none"');
}
-->
</script>

mfg Meister Knorke

Jan Krüger
27.10.2003, 12:12
document.layers ist veraltet und document.all ist eine Internet-Explorer-Eigenart. Du musst document.getElementById("elementname") benutzen. Eine Referenz dazu gibt's bei SelfHTML (http://selfhtml.teamone.de/).

Meister Knorke
27.10.2003, 13:29
wenn ich das aber nun nicht mit nur einem elementnamen haben möchte sondern mit mehreren?
die id's würden lauten 1,2,3,4,5
müsste ich dann schreiben document.getelementbyId("1;2;3;4;5")
denn ich ruf ja die allg. funktion afficheCalque auf in der die anderen zusammengefasst sind.

<div style="background color:#000000; width:72; height=40"
onmouseover="afficheCalque('div1')"
onmouseout="cacheCalque('div1')">
<img src="navigation/a-ten.jpg" name="Link10"
onmouseover="document.Link10.src=bild20.src;afficheCalque('div1')"
onmouseout="document.Link10.src=bild19.src;cacheCalque('div1')">
</div>
<div align="center" id=div1 onmouseover="document.Link10.src=bild20.src;afficheCalque('div1')" onmouseout="document.Link10.src=bild19.src;cacheCalque('div1')" style="position:absolute; top:222; left:37%; layer-background-color:#000000; background-color:#000000; width:400; height:60; padding:8; border-width:2; border-color:#ED1C24; border-style:dashed; display:none">
<font face="Verdana" color=#ffffff size=1>Band:&nbsp;Millencollin<br>Länge:&nbsp;3:02<br>Album:&nbsp;Pennybridge Pioneers</font>
</div>
.
.
.hier folgen weiter id's mit demselben aufbau nur anderem inhalt

Meister Knorke
28.10.2003, 10:01
und noch 2. frage:
was müsste ich anstatt document.layer sonst benutzen wenn dies veraltet ist?

Felix Kaiser
28.10.2003, 19:37
Hat Jan doch gesagt? Les dir seinen letzten Beitrag genauer durch.

Meister Knorke
28.10.2003, 19:52
hmmm ich habe gedacht das bezieht sich nur auf des document.all! das ich des durch document.getelementbyid ersetzen soll! Ja aber wie ist des wenn ich jetzt mehrere Id's habe! ich habe es mal probiert mit document.getelementbyid("1;2;3;4;5") aber des hat nicht funtioniert!

Kristin
28.10.2003, 20:00
Hi, ich hab mir jetzt den ganzen quatsch nicht genau durchgelesen und weis nicht was du mit "document.getelementbyid("1;2;3;4;5")" anstellen willst,
Aber soweit ich JavaScript kenne kannst du das so nicht aufrufen - aber für solche Probleme gibt es doch die Schleifen-Konstrukte.
Pack den Kram den du machen willst in ne Schleife und laufe die Elemente damit durch . . . :rolleyes:

z.B.
for(i=1;i<6;i++) {
document.getelementbyid(i).machdamitwas();
}

Viele Grüße

Kristin

outi
29.10.2003, 16:08
also wie ihr wahrscheinlich scho gemerkt habt is der meister knorke unheimlich faul deshalb hat er mir sein zeuch gegebn und ich sollts mit "getelelementbyid" verbessern . Jetzt war ich ne stunde drangehockt und schaffs trotzdem nicht ,auch nicht mit hilfe von selfhtml .:mauer:
Die konkrete frage : WIE ERSETZTE ICH DAS MIT GETELEMENTBYID ??? ich hab das script koplett umgeschrieben hab einfachere sachen versucht aber es ging nie .Ich weiß das das kein board is um sich die hp kostenlos programmieren zu lassen ,aber ich komm nunmal nicht weiter und zum helfen seid ihr ja da :p

Jan Krüger
31.10.2003, 17:27
Nunja, sehr konkret finde ich die Frage nicht... ;)

outi
31.10.2003, 20:21
ich schon ,also ich wiederhole sie nochmal :D :Wie genau setze ich das getelementbyid ein bezogen auf den quelletext den knorke schon geschrieben hat.

Jan Krüger
01.11.2003, 02:14
Hab ich doch schon gesagt...
document.layers ist veraltet und document.all ist eine Internet-Explorer-Eigenart. Du musst document.getElementById("elementname") benutzen. Eine Referenz dazu gibt's bei SelfHTML.

outi
01.11.2003, 11:33
args,du verstehst mich einfach net :D .Das habe ich doch schon versucht so wie du es geschrieben hast und auch mit selfhtml hilfe aber ich habs net gescahfft ,deshalb bite ich um weitere hilfe

Jan Krüger
01.11.2003, 13:56
Was ist denn schiefgegangen, bzw. wie hast du's versucht?

outi
01.11.2003, 23:45
also ich hab viel versucht,z.B. einfach getlayers mit getelementbyid ersetzt .Das geht aber nicht weil er ja dann eine id wissen will .Ich habe versucht mehreren dingern die ids zu geben das hätte auch funktioniert wenn er nicht gesagt hätte "layerRef ist nicht definiert" .Also hab ich versucht das ding als variable anzugeben .Hat aber auch nicht funktioniert.

Jan Krüger
02.11.2003, 21:54
Beispiel:
document.getElementById("id").style.display = "none";

outi
03.11.2003, 16:31
joa ,big THX .Das war das was ich gebraucht hab.Jetzt funzt alles .(ehrlich gesagt ziemlich einfach aber ich bin net drauf gekommen :))

thx nochmal an alle die geholfen haben vor allem aber an jan :D