addEventListener & auslösendes event-Objekt
dr.colossos
- javascript
0 molily
Hi,
ich möchte eventListener benutzen, und der Funktion die durch den eventListener aufgerufen wird, das event-Objekt, das für den Aufruf verantwortlich ist, mitgeben.
Ich möchte bei Doppel-Klick auf ein Text-Feld oder eine Text-Area-Feld ein verstecktes Text-Area-Feld (utility_area) anzeigen (Function enlarge()), wo der User den Inhalt besser editieren kann (aus design Gründen sind die Text-Areas relativ klein), und nach drücken von z.B. Escape sol die Text-Area via shrink() wieder verschwinden, und der Inhalt ausgetauscht werden.
Dazu müsste ich aber bei expand() wissen, welche Koordinaten das mouse-Event hatte, um die Text-Area in der Umgebung zu öffnen, bzw. bei shrink brauch ich den KeyCode des Events ... nur weiß ich nicht wie ich das Event übergebe ... andere Parameter kann ich übergeben, nur wie greif ich auf das Event-Objekt zu?
Danke
Unten steht der Code, gekürzt:
// speichert Referenz auf aufrufendes Feld
var orgField = null;
// init() wird in body-onLoad aufgerufen:
function init()
{
for(i = 0; i < document.forms.length; i++)
{
for(j = 0; j < document.forms[i].elements.length; j++)
{
curr_type = document.forms[i].elements[j].type;
if(curr_type == 'text' || curr_type == 'textarea')
{
addEvent(document.forms[i].elements[j], 'dblclick', function(){enlarge(this);});
//alert('Enlarge-EventListener für ' + document.forms[i].elements[j].name);
}
}
}
addEvent(document.getElementById('utility_area'), 'keypress', function(){shrink(this);});
}
function enlarge(field)
{
orgField = field;
utility_area = document.getElementById('utility_area');
utility_area.value = field.value;
utility_area.style.display = 'block';
utility_area.style.left = 200; // ungünstig, besser nahe an Mouse-Klick positionieren
utility_area.style.top = 200; // ungünstig, besser nahe an Mouse-Klick positionieren
}
function shrink(field)
{
// event.keyCode = escape-Taste
// orgField.value = field.value;
// field.style.diplay = 'none';
}
Hallo,
wie greif ich auf das Event-Objekt zu?
http://de.selfhtml.org/javascript/objekte/event.htm#allgemeines
Das Event-Objekt wird der Handler-Funktion als Parameter übergeben, im IE ist es in window.event gespeichert.
addEvent(elem, "event", func);
function func (e) {
e = e || window.event;
weiterfunktion(e, this, bla, blub, wasauchimmer...);
}
Mathias
D'oh.
Das hatte ich schon so versucht, nur hab ich vergessen das event in der Parameter-Liste der anonymen Funktion zu notieren.
Danke sehr!