JavaScript Events selber auslösen

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/javascript_events_selber_ausloesen_56559/page_1 - zur Vollversion wechseln!


Yeahman schrieb am 25.11.2002 um 16:19

Ich möchte im onFocus Event von einer DropDownList, die Breite von jenigerwelchen verändern, und diese gleichzeitig aufklappen.
Ich hätt mir gedacht selber noch ein onClick hinterher zu jagen.

Weiss wer wie das geht?


atrox schrieb am 25.11.2002 um 18:33

ich glaube das aufmachen der box ist nicht möglich. "onClick" usw.. sind nur User-EventHandler (erzeugt das system um dem user gelegenheit zur reaktion auf ein systemereignis zu ermöglichen) - es sind keine System-EventHandler (wo das System auf Events wartet, das tut es zb in der windows message queue).

du kannst die user-handler aufrufen aber es hat nicht den effekt eines mausklicks.


atrox schrieb am 25.11.2002 um 18:34

darf man fragen was das werden soll ?


Yeahman schrieb am 26.11.2002 um 08:08

ganz einfach, ich hab eine DropDownliste von der nur der "Pfeil" sichtbar ist, wenn der User den Focus drauflegt, soll sie aufgehen der User was auswählen, das wird in die Textbox deneben übernommen, und dann wenn der Focus wieder verloren gehn, soll das Ding wieder schmal werden.

Problem: Ich krieg das onFocus, mach die Liste breiter, aber dann muss der User nochmal klicken, um sie zu öffnen, und das werden unsere Verkäufer sehr bald bemängeln.


schrieb am 26.11.2002 um 08:26

die liste breiter machen mit onmousedown


Yeahman schrieb am 26.11.2002 um 12:50

vielleicht bin ich zu blöd aber des geht auch nicht:

<html>
<head>
<script language="javascript">
<!--
function test(id)
{
id.parentElement.style.width="50%"
}
-->
</script>
</head>
<body>
<table style="width:100%">
<tr>
<td style="width:20px">
<select ID="t1" style="width:100%" onMouseDown="javascript:test(this)">
<option>test1</option>
<option>test2</option>
<option></option>
</select>
</td>
<td>
<input ID="t2" type="text" style="width:100%">
<td>
</tr>
</table>
</body>
</html>

der onClick dürft immer noch vorher kommen, weil die Liste kurz aufflackert.


atrox schrieb am 26.11.2002 um 13:50

workaround: ccs-layer der eingeblendet wird, und dropdown-liste simuliert.


Yeahman schrieb am 26.11.2002 um 14:34

geht auch nicht so einfach, weil das eine ASP.NET DropDownliste ist, wo ich nach dem postback das selecteditem brauch, und selber schreiben funktioniert auch nicht wirklich (aus Zeitgründen).


atrox schrieb am 26.11.2002 um 14:40

dann verwende eine ASP.NET select-liste auf einem unsichtbaren css-layer, den du einblendest, sobald jemand auf ein pfeil-image klickt, und ausblednest, wenn er was ausgewählt hat.


watchout schrieb am 27.11.2002 um 18:06

edit: bledsinn... :rolleyes: sorry

edit2: doch noch was gefunden...
und zwar: du kannst beim mouseover eine liste aus dem dropdown machen, so ca:

Code:
<script type="text/javascript">
<!--
var Breite = 3;
function erweitern() {
  Breite = 10;
  document.getElementsByName("Eingabe")[0].size = Breite;
}
function normal() {
  Breite = 1;
  document.getElementsByName("Eingabe")[0].size = Breite;
}
//-->
</script>
<form name="Formular">
Geben Sie Text ein:<br>
<select size="1" name="Eingabe" onMouseout="normal()" onMouseOver="erweitern()">
<option value=1>AKarli</option>
<option value=2>BKarli</option>
<option value=3>CKarli</option></select>
</form>

edit3: sinnvollerweise solltest du sie aber per css fix positionieren, damit sie das ganze andere zeug nicht verschiebt... ;)
keine ahnung ob das im netscape genauso 'gut' funktioniert wie im ie ;)




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026