Dateigrösse: 3.47 kb
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>addEventListeners</title> <style type="text/css" media="all"> body { font: 20px times, sans-serif; padding:10px; } .tool { -moz-opacity: 0.85; opacity: 0.85; filter: alpha(opacity=85); } .divs { padding:10px 0; width:25em; border-bottom: 1pt dashed #69c; } .noBorder { border:0 none; font: bold 20px calibri,times; background-color:#6699cc !important; padding:1pt 5pt; margin:0; } </style> <script type="text/javascript"> function ausgabe(text) { text = text=="" ? "Focus auf Text A" : text; document.getElementById("txt").innerHTML=text; } /* */ function loeschen() { document.getElementById("txt").innerHTML=""; } function show(msg) { if(msg=='undefined') msg='...'; document.forms[1].elements[0].value=msg; } function colore(c) { document.forms[1].elements[0].style.color=c; document.forms[1].elements[0].setAttribute("className","noBorder"); document.getElementById("txt").innerHTML="new event"; } function eventer(elem, evType, fn, useCapture) { if (elem.addEventListener) { elem.addEventListener(evType, fn, useCapture); return true; } else if (elem.attachEvent) { var r = elem.attachEvent('on' + evType, fn); EventCache.add(elem, evType, fn); return r; } else { elem['on' + evType] = fn; } } var EventCache = function() { var listEvents = []; return { listEvents : listEvents, add : function(node, sEventName, fHandler, bCapture) { listEvents.push(arguments); }, flush : function() { var i, item; for(i = listEvents.length - 1; i >= 0; i = i - 1) { item = listEvents[i]; if(item[0].removeEventListener){ item[0].removeEventListener(item[1], item[2], item[3]); } /* From this point on we need the event names to be prefixed with 'on" */ if(item[1].substring(0, 2) != "on"){ item[1] = "on" + item[1]; } if(item[0].detachEvent){ item[0].detachEvent(item[1], item[2]); } item[0][item[1]] = null; } } } }(); function E(id,ev,f) { eventer(id,ev,f,false); } function geladen() { alert("newDiv successfully inserted!"); } function b_click() { newDiv=document.createElement("div"); newDiv.setAttribute("id","nd"); newDiv.id="nd"; //newDiv.innerText="ein neuer Container..."; // only IE. text=document.createTextNode("ein neuer Container!"); newDiv.appendChild(text); document.getElementById("addEv").appendChild(newDiv); newDiv.onclick=function() { eventer("headline", "mouseover", geladen(), true); } } window.onload=b_click </script> </head> <body> <h3 id="headline">addEventListeners</h3> Text A: <form name="myForm"> <input type="text" name="Text1" size="40" value="" id="Text1" onfocus="ausgabe(this.value);" onblur="eventer('event_btn','click',show('Les vignerons de Courbeil s\'amusent'), false);" /> </form> Text B: <form name="myForm"> <input type="text" name="Text2" size="40" value="" onfocus="ausgabe('Focus auf Text B');" onblur="loeschen();" /> </form> <div id="event_btn" class="divs">eventHandler</div> <div onclick="eventer('txt','mouseover',colore('#ff9966'), false);" class="divs">TextB::ColorCambio</div> <div id="txt" onclick="b_click();" class="divs">....txt...</div> <div id="addEv" class="divs"></div> </body> </html> <!-- onclick="E();" -->