Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 25.11.2006, 15:46 Titel: JavaScript - Problem |
|
|
Hallo,
es geht um folgendes Codebeispiel: http://www.drweb.de/muster/popup-box-demo.html
Der Code ermöglicht das Handlen einer einzigen solchen Fake-Popup-Box. Ich müsste aber 15 solche Popupboxen verwalten können. Und zwar hab ich eine Imagemap mit verschiedenen Areas und wenn man die Maus auf eine Area hält, soll die ihr zugeordnete Popupbox aufgehen und sich wieder schließen, wenn die Maus weggeht. Mein Problem dabei ist momentan, dass ich so gut wie kein JavaScript kann und daher nicht weiß, wie ich ein Array von diesen Boxen erzeugen könnte, sodass ich bei den Areas
Code: | onMouseOver="box_zeigen(1);return false"
...
onMouseOver="box_zeigen(14);return false" |
machen könnte. Die Funktion box_zeigen ist ja im Prinzip dieselbe wie box_weg, nur dass man statt "hidden" "visible" einsetzt.
Vielen Dank dem JavaScript-Experten, der mir da helfen kann, schon mal im Voraus und viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 25.11.2006, 22:29 Titel: |
|
|
also ich würde das ganze mit PHP dynamisch generieren und dann für deine boxen IDs mit zahlen vergeben. der javascript-aufruf wird dann auch mit dieser ID übergeben. dann könnte dein javascript herausfinden, ob:
document.getElementById("Feld18").irgendwas = irgendwas
....
meinst du sowas? _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 25.11.2006, 23:17 Titel: |
|
|
Code: | <html>
<head>
<script language="JavaScript1.2">
var ns4=document.layers
var ie4=document.all
var ns6=document.getElementById&&!document.all
//Drag und Drop Funktion fuer NS 4//
var dragswitch=0
var nsx
var nsy
var nstemp
function drag_drop_ns(name){
if (!ns4)
return
temp=eval(name)
temp.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP)
temp.onmousedown=gons
temp.onmousemove=dragns
temp.onmouseup=stopns
}
function gons(e){
temp.captureEvents(Event.MOUSEMOVE)
nsx=e.x
nsy=e.y
}
function dragns(e){
if (dragswitch==1){
temp.moveBy(e.x-nsx,e.y-nsy)
return false
}
}
function stopns(){
temp.releaseEvents(Event.MOUSEMOVE)
}
//Drag und Drop Funktion fuer ie4+ und NS6//
function drag_drop(e){
if (ie4&&dragapproved){
crossobj.style.left=tempx+event.clientX-offsetx
crossobj.style.top=tempy+event.clientY-offsety
return false
}
else if (ns6&&dragapproved){
crossobj.style.left=tempx+e.clientX-offsetx
crossobj.style.top=tempy+e.clientY-offsety
return false
}
}
function initializiere_drag(e){
crossobj=ns6? document.getElementById("einepopupbox") : document.all.einepopupbox
var firedobj=ns6? e.target : event.srcElement
var topelement=ns6? "HTML" : "BODY"
while (firedobj.tagName!=topelement&&firedobj.id!="dragbar"){
firedobj=ns6? firedobj.parentNode : firedobj.parentElement
}
if (firedobj.id=="dragbar"){
offsetx=ie4? event.clientX : e.clientX
offsety=ie4? event.clientY : e.clientY
tempx=parseInt(crossobj.style.left)
tempy=parseInt(crossobj.style.top)
dragapproved=true
document.onmousemove=drag_drop
}
}
document.onmousedown=initializiere_drag
document.onmouseup=new Function("dragapproved=false")
//Drag und Drop Funktionen enden hier//
function box_weg(){
if (ie4||ns6)
crossobj.style.visibility="hidden"
else if (ns4)
document.einepopupbox.visibility="hide"
}
</script>
</head>
<body>
<div id="einepopupbox" style="position:absolute;width:250px;left:250;top:250">
<table border="0" width="250" bgcolor="#000080" cellspacing="0" cellpadding="2">
<tr><td width="100%">
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="34">
<tr>
<td id="dragbar" style="cursor:hand" width="100%">
<ilayer width="100%" onSelectStart="return false">
<layer width="100%" onMouseover="dragswitch=1;if (ns4) drag_drop_ns(einepopupbox)" onMouseout="dragswitch=0">
<font color="#FFFFFF">Pop-up-Box</font>
</layer></ilayer></td>
<td style="cursor:hand"><a href="#" onClick="box_weg();return false"><img src="images/zu.gif" border=0></a></td>
</tr>
<tr>
<td width="100%" bgcolor="#FFFFFF" style="padding:4px" colspan="2">
Informationen, Informationen und Informationen...
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</body>
</html> |
Wenn ich das richtig sehe, wird der Variable crossobj das Objekt mit der ID "einepopupbox" zugeordnet. Später wird dann immer Crossobj benutzt. Wie müsste man das JavaScript verändern, damit man beliebig viele divs definieren und diese dann über einen Index ansteuern kann? Ich habe keine Ahnung, was ich da an den Drag&Drop Functions etc. ändern müsste.  _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 26.11.2006, 19:25 Titel: |
|
|
Hi,
..also eins ist schon mal klar:
Wenn zwei div's identische ID's haben, werden sie automatisch indiziert und
können dann per Index angesprochen werden. Die maximale Anzahl läßt sich mit
.Length ermitteln, die am besten du versuchst mal folgenden Code: | Sub ShowItems()
Dim s
Msg="<table><tr><td align=right>Lfd</td><td align=center>ID</td><td>Name" &"</td></tr>"
With Document.Forms.Form1
For i=0 To .Elements.Length-1 '-1 NIEMALS vergessen!!!
s=CStr(i):If i<10 Then s=" " &s
Msg=Msg &"<tr><td align=right>" &i &"</td><td>" &(.Item(i).id) &"</td><td>" &(.Item(i).Name) &"</td></tr>"
Next
End With
StaMsg Msg &"<span>Das sind " &Document.Form1.Length &"!</span></table>"
Msg=""
End Sub | zu verstehen(ist .Hta mit Vbs)
Alles zusammengebastelt mit SelfHtml von Stefan Münz..
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 26.11.2006, 20:59 Titel: |
|
|
Ich hatte geschrieben..Vbs =VbScript(hatte ich vorausgesetzt)
Dieser Schnipsel ist schon ein paar Tage alt..
..und soll nur zeigen, daß, wenn es in Vbs geht, es auch in j(ava)Script gehen muß.
Und da ist SelfHtml wirklich die allererste Anlaufstelle.
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 26.11.2006, 22:17 Titel: |
|
|
achja, bloß nicht IDs zwiemal vergeben. wenn schon, dann sollte man NAMEs zweimal vergeben  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 26.11.2006, 23:06 Titel: |
|
|
Wie ich schon geschrieben hatte(s.o.) können ID's durchaus mehrfach vergeben werden..
..mehrfach vergebene Name's sind wichtig für Buttons, die dann alle zu einer Gruppe gehören(ich glaub so war das..)
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 28.11.2006, 22:19 Titel: |
|
|
also mehrfach verwendete IDs soltest du nicht nehmen, weil
1) der code dann nicht valid ist
2) eine ID etwas einmaliges ist. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
|