PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Popupfenster "Suchen" wie im Forum


RMC
2005-03-15, 15:37:30
Wie ist das denn realisiert worden?

Wenn man auf den Link "Suchen" klickt, wird ein <div> eingeblendet, das ist klar.

Aber wie kann man erreichen, dass beim wegklicken dieses <div> wieder verschwindet? Es gibt bei divs keine Focus/Blur Funktion deshalb die Frage.

Danke!

Sephiroth
2005-03-15, 16:08:17
// close all menus on mouse click
document.onclick = vbmenu_close;
ich glaub der rest ist klar ;)

RMC
2005-03-15, 18:00:05
hm ne, is nicht klar :usad:

was ist vbmenu_close und was macht diese Zeile überhaupt?

Kann ich im Javascript einfach


document.onclick = closeAllMenues();


schreiben (Dem Event quasi eine Funktion zuweisen)? Das haut bei mir nicht hin, das muss ja irgendwie anders heißen.

RMC
2005-03-16, 11:40:09
mir ist es nicht klar...könntest du das ev. erläutern? :redface:

Sephiroth
2005-03-16, 14:09:21
das ist doch ganz einfach ... da du sachon richtig festgestellt hast, daß die suchfenster nur divs sind, die eingeblendet werden, so wird wohl die funktion die beim onclick-event vom document aufgerufen wird, diese/alle wieder ausblenden (display: none).

RMC
2005-03-16, 20:47:00
das ist doch ganz einfach ... da du sachon richtig festgestellt hast, daß die suchfenster nur divs sind, die eingeblendet werden, so wird wohl die funktion die beim onclick-event vom document aufgerufen wird, diese/alle wieder ausblenden (display: none).

Das Aufrufen der Funktion funkioniert aber nicht. Ich krieg einen Javascriptfehler, das muss irgendwie anders heißen.

document.onclick = fkt();

gibts nicht!

Sephiroth
2005-03-16, 23:33:17
Das Aufrufen der Funktion funkioniert aber nicht. Ich krieg einen Javascriptfehler, das muss irgendwie anders heißen.

document.onclick = fkt();

gibts nicht!
:| du mußt dir schon deine eigene Funktion schreiben. Mir scheint du hast nicht viel am Hut mit Javascript oder?

RMC
2005-03-17, 00:01:55
ach, soviel versteh ich doch auch. Mir gehts um was ganz anderes!



<head>
<script language='Javascript'>
function closeAllMenu()
{
document.getElementById('searchwindow').style.visibility = "hidden";
}
</script>
</head>

<body>
<script language='Javascript'>
document.onclick = closeAllMenu(); //Das hier funktioniert syntaktisch nicht
</script>
</body>


searchwindow ist das <div> Element.

so und ich krieg den Fehler:

"Nicht implementiert"

so...was tun? es gibt doch gar kein "document.onclick" oder?

Sephiroth
2005-03-17, 01:02:10
<html><head>
<script type="text/javascript">
<!--
function showAllMenu() {
document.getElementById('searchwindow').style.display = "";
document.onclick = closeAllMenu;
}
function closeAllMenu() {
document.getElementById('searchwindow').style.display = "none";
document.onclick = showAllMenu;
}
//-->
</script>
</head>


<body onload="showAllMenu();">
<script type="text/javascript">
<!--
document.onclick=closeAllMenu;
//-->
</script>
<div id="searchwindow" style="display: none;">
hull0w?
</div>
-.-
</body></html>
Die Klammern müssen weg bei der Zuweisung des Click-Event Listeners, wenn du es per JS machst.
Display ist besser als visibility hier, weil visibility den Platz für das Objekt reserviert auch wenn es nicht angezeigt wird - bei display ist das eben nicht der Fall.

RMC
2005-03-17, 11:32:14
Die Klammern müssen weg bei der Zuweisung des Click-Event Listeners, wenn du es per JS machst.

aso? na gut...komisch zwar, ist aber so. Wieder was gelernt.


Na gut, jetzt hab ich aber das Problem, dass ich durch das Such-Fenster hindurchklicken kann. D.h. ein Focus auf das Textfeld ist nicht möglich. Auch wenn ich nur auf das div allein klicke, verschwindet es.

Da fehlt noch was...irgendwie :(

Sephiroth
2005-03-17, 15:40:24
aso? na gut...komisch zwar, ist aber so. Wieder was gelernt.


Na gut, jetzt hab ich aber das Problem, dass ich durch das Such-Fenster hindurchklicken kann. D.h. ein Focus auf das Textfeld ist nicht möglich. Auch wenn ich nur auf das div allein klicke, verschwindet es.

Da fehlt noch was...irgendwie :(
<div id="searchwindow" style="display: none;" onmouseover="document.onclick='';" onmouseout="document.onclick=closeAllMenu;">
z.B.

RMC
2005-03-17, 17:31:30
ok, dankeschön :)