JavaScript Events selber auslösen
Yeahman 25.11.2002 - 16:19 863 9
Yeahman
OC Addicted
|
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
in fairy dust... I trust!
|
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
in fairy dust... I trust!
|
darf man fragen was das werden soll ?
|
Yeahman
OC Addicted
|
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.
|
Guest
Deleted User
|
die liste breiter machen mit onmousedown
|
Yeahman
OC Addicted
|
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.
Bearbeitet von Yeahman am 26.11.2002, 12:53
|
atrox
in fairy dust... I trust!
|
workaround: ccs-layer der eingeblendet wird, und dropdown-liste simuliert.
|
Yeahman
OC Addicted
|
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
in fairy dust... I trust!
|
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
Legendundead
|
edit: bledsinn...  sorry edit2: doch noch was gefunden... und zwar: du kannst beim mouseover eine liste aus dem dropdown machen, so ca: <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
Bearbeitet von watchout am 27.11.2002, 18:43
|