addEvent + IE + this
IE alatt megoldható, hogy ha függvényt rendelek valamilyen elemhez, akkor a this változót használhassam a függvényben?
Az alábbi kód normális böngészőkben megfelelően működik, míg IE alatt undefined értéket ad.
Lehet ezen valahogyan segíteni?
■ Az alábbi kód normális böngészőkben megfelelően működik, míg IE alatt undefined értéket ad.
Lehet ezen valahogyan segíteni?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="hu" xml:lang="hu">
<head><title></title>
<script type="text/javascript">
<!--
function addEvent(obj, evType, fn, useCapture) {
if (obj.addEventListener) {
obj.addEventListener(evType,fn,useCapture);
return true;
} else if(obj.attachEvent){
return obj.attachEvent("on"+evType,fn);
} else {
return false;
}
}
function start() {
var input = document.getElementById('hello');
addEvent(input, 'focus', function() {alert(this.value);});
}
addEvent(window,'load',start);
-->
</script>
</head>
<body>
<form action="?" method="get">
<fieldset>
<input id="hello" value="hello" />
</fieldset>
</form>
</body>
</html>
Jo-ho-ho
Az event objektuot mindenképpen megkapja a kezelő fügvényed, amiből ki kell piszkálni az objektumot (target).
A dolgot csöppet bonyolítja, hogy explórerben több ilyen objektum is van. Pl:
Itt egy cikk, általában ez event modellekről:
http://developer.apple.com/internet/webcontent/eventmodels.html
Itt pedig egy általam írt függvény, direkt ilyen feladatokra, ha meg akarod nézni, pontosan milen is az event objektum az aktuális böngésződben:
http://vbence.web.elte.hu/dom_objektum_info.html
Bence
lásd komment,link a kódban
ui: http://toxin.hu/test2.html
itt a megoldás
addEventHandler
függvény, illetve az által meghívott függvényben hogyan kerülnek kinyerésre szabványosan az eseménnyel kapcsolatos paraméterek.Ezenkívül érdemes lehet kipróbálni a dojo JS framework eseménykezelését, konkrétan még nem használtam, de amit olvastam róla, az alpján nagyon tetszett.
Felhő