webForumDet fria alternativet

window.event has no properties?

7 svar · 289 visningar · startad av Travoni

TravoniMedlem sedan okt. 20041 538 inlägg
#1

Jag får window.event has no properties i FF. Vad är fel?

 			function f(o){
				[b]var e = window.event.toElement;[/b]
    			found = false;

				while (e.parentNode){
					if (e==o){
						found = true;
						break;
					}
					e = e.parentNode;
				}

				if (!found){
					alert('Ping!');
				}
			};
Peter SMedlem sedan dec. 20025 484 inlägg
#2

FF stödjer ej event-egenskapen.

TravoniMedlem sedan okt. 20041 538 inlägg
#3

Hur kan man göra där då?

Peter SMedlem sedan dec. 20025 484 inlägg
#4
// anrop
f(this, event);

function f(o,e){
  if (e){
    e = e.relatedTarget;
  } else if (window.event){
    e = window.event.toElement;
  }
}

Red./ Ändrade ett misstag

TravoniMedlem sedan okt. 20041 538 inlägg
#5

Utan ! i första if-satsen så får jag fel i IE.
Med ! (som i exemplet) så funkar det i IE men i FF så triggar den även på parentNode.
Va e fel?

function f(o,e){
	if (!e){
     	e = e.currentTarget;
  	} else if (window.event){
    	e = window.event.toElement;
  	}

    	found = false;
		
		while (e.parentNode){
			if (e==o){
				found = true;
				break;
				}
			e = e.parentNode;
			}

		if (!found){
			alert('Ping!');
		}
};
//Kallar med: f(this,event)

Känner mig som en sopa.

TravoniMedlem sedan okt. 20041 538 inlägg
#6

Har även testat med e.relatedTarget med samma resultat.

Peter SMedlem sedan dec. 20025 484 inlägg
#7

Ah, låt oss vända på steken!

function f(o,e){
  if (window.event){
    e = e.toElement;
  } else if (e){
    e = e.relatedTarget;
  }

  var found = false;

  while (e.parentNode){
    if (e == o){
      found = true;
      break;
    }

    e = e.parentNode;
  }

  if (!found){
    alert("Ping!");
  }
}

:)

TravoniMedlem sedan okt. 20041 538 inlägg
#8

Härligt!

Genererad på 377 ms · cache AV · v20260730165559-full.f96bc7eb