Hi, eine kleine Erweiterung zu meinem letzten Post:
ich will in einer Klasse zb. allen Links in einer Liste (Navigation) eine Funktion zuordnen, die dann per this-Zeiger auf den Link zugreifen kann.
Dank Blackgreetz klappt das auch, aber IE macht natürlich wieder Mucken.
Zum einen kennt IE (7) nicht addEventListener, so das ich mir eine Hilfsfunktion _addEventListener(element, event, handler) gesucht habe
	
Die Funktion _addEventListener(element, event, handler):
	
mein Problem:
IE kommt mit this nicht zurecht:
	
Korrekt wäre ja:
	
und foo dann:
	
macht FF tadellos, IE meldet Object Error....
Kennt einer eine DOM entsprechende, auch im IE funktionierende Lösung....
Will nicht auf <a href="#" Menu.foo(this) /> zurückfallen wollen...
					ich will in einer Klasse zb. allen Links in einer Liste (Navigation) eine Funktion zuordnen, die dann per this-Zeiger auf den Link zugreifen kann.
Dank Blackgreetz klappt das auch, aber IE macht natürlich wieder Mucken.
Zum einen kennt IE (7) nicht addEventListener, so das ich mir eine Hilfsfunktion _addEventListener(element, event, handler) gesucht habe
PHP-Code:
	
	
// zuweisen einer Funktion innerhalb einer Methode
var basisNode = document.getElementById("navigation");
var links = basisNode.getElementsByTagName("a");
               for(i=0; i<links.length; i++){
               _addEventHandler(links[i], "mouseover", foo);
                 //  links[i].addEventListener("mouseover", foo, false);    
               } 
PHP-Code:
	
	
function _addEventHandler(element, event, handler) {
  var _tmp, _onevent;
  if (!element || !event )
    return false;
  if (element.addEventListener) {  // DOM-konform
    element.addEventListener(event, handler, false);
  }else {
    _onevent = 'on'+event;
    if (element.attachEvent){     // IE
      element.attachEvent(_onevent, handler);
    }
  }
} 
IE kommt mit this nicht zurecht:
PHP-Code:
	
	
function foo(){  alert('');} // IE ist brav
function foo(){ this.style.backgroundColor="red"; alert('');}
// IE macht nicht das alert() und wirft auch keinen Fehler
// Interessanter weise führt FF this.style aus 
PHP-Code:
	
	
// zuweisen der funktion:
var links = basisNode.getElementsByTagName("a");
      for(i=0; i<links.length; i++){
           _addEventHandler(links[i], "mouseover",function(ev){foo(this);});
      //     links[i].addEventListener("mouseover", foo, false);    
      } 
PHP-Code:
	
	
function foo(obj){
          try{ 
            obj.style.backgroundColor="red"; //IE meldet Object Error.
            alert('');
          }catch(e){alert(e);}} 
Kennt einer eine DOM entsprechende, auch im IE funktionierende Lösung....
Will nicht auf <a href="#" Menu.foo(this) /> zurückfallen wollen...
          
 
 und schönen Dank 
 auch WinzigWeich 
 
 
							
						
 
Kommentar