Laden...

bubbles deaktivieren...

Erstellt von multitrust vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.810 Views
M
multitrust Themenstarter:in
232 Beiträge seit 2009
vor 14 Jahren
bubbles deaktivieren...

Hallo zusammen

Ich habe folgende javascript funktion um Bubbles auf IE und Firefox zu deaktivieren.


function DeactivateEventBubbles(evt)
{
	if (!e) var e = window.event;
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();
}

Leider funktionierts unter FF nicht! Diese funktion wird aus einer anderen Funktion aufgerufen...

Danke

M
9 Beiträge seit 2008
vor 14 Jahren
  
function DeactivateEventBubbles(evt)  
{  
  if (!e) var e = window.event;  
  e.cancelBubble = true;  
  if (e.stopPropagation) e.stopPropagation();  
}  
  

Wozu das erste if Statement? "e" ist in diesem fall immer leer, oder irre ich da?
Würde auf "!evt" prüfen und sonst generell window.event nehmen, da dies von IE und FF interpretiert wird.


MkG Mitch
www.michaelpalmer.de

M
multitrust Themenstarter:in
232 Beiträge seit 2009
vor 14 Jahren

window.event funktioniert nicht mit FF!!

habe soeben den code zum testen so geschrieben:


window.event.cancelBubble = true;
evt.stopPropagation();

Mit IE funktioniert... mit FF leider nicht!! 😦(

3.971 Beiträge seit 2006
vor 14 Jahren

Du hast einen Fehler in der ersten Zeile.

Event order


function DeactivateEventBubbles(e)
{
    if (!e) var e = window.event;
    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();
}

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...

M
9 Beiträge seit 2008
vor 14 Jahren

window.event funktioniert nicht mit FF!!

Sorry!
Laut selfhtml ist dies auch nur von wenigen Browsern unterstützt!
http://de.selfhtml.org/dhtml/modelle/microsoft.htm#event_bubbling


MkG Mitch
www.michaelpalmer.de

M
multitrust Themenstarter:in
232 Beiträge seit 2009
vor 14 Jahren

ganz komisch!! FF reagiert wirklich anders...

In einer Zeile habe ich verschiedene Spalten. In der ersten Spalte setze ich folgendes:


window.event.cancelBubble = true

Internet Explorer reagiert da richtig. Die erste Spalte reagiert nicht mehr auf klicks. Bei FireFox ist die ganze Zeile davon betroffen.... hä???
Ich dachte, FF kann nicht mit window.events umgehen...

M
9 Beiträge seit 2008
vor 14 Jahren

Also bei dem Beispiel: http://de.selfhtml.org/dhtml/modelle/anzeige/bubble.htm
Spuckt mit der FF lauter Fehlermeldungen aus, denke man sollte einfach drauf verzichten und mit DIV Areas arbeiten oder wozu man das auch immer benötigen mag.


MkG Mitch
www.michaelpalmer.de

M
multitrust Themenstarter:in
232 Beiträge seit 2009
vor 14 Jahren

voll beschissen...

Leider geht es nicht anders. Unsere Plattform muss FF und IE unterstüzen... 😦(((

FF spuckt mir auch dauernd fehlermeldungen. Habe versucht die fehler aufzufangen mit folg. code:


        if( typeof( e ) == "undefined" && typeof( window.event ) != "undefined" ) e = window.event; 
        if (typeof( window.event ) != "undefined" ) 
        { 
        e.cancelBubble=true; 
        } else { 
        e.stopPropagation(); } 

Folgende Fehlermeldung kriege ich mit FF:

e is not defined
PrepareTheElementMenu(click clientX=315, clientY=466, "this", "", "")ListTask...vities=de (Linie 274)
onclick(click clientX=315, clientY=466)ListTask...v1g%3D%3D (Linie 2)
[Break on this error] e.stopPropagation(); }

so ein beschissenes problem....

M
multitrust Themenstarter:in
232 Beiträge seit 2009
vor 14 Jahren

HAAA...

Ich habe die Lösung!! 😃)

so gehts mit FF und IE:


if( typeof( evt ) == "undefined" && typeof( window.event ) != "undefined" ) e = window.event; 
if (typeof( window.event ) != "undefined" ) 
    { 
       evt.cancelBubble=true; 
     } else { 
       evt.stopPropagation(); } 

X
1.177 Beiträge seit 2006
vor 14 Jahren

Du hast einen Fehler in der ersten Zeile.

und in deiner Lösung steht immernoch ein "e" ohne Verwendungszweck rum.

😃

Xynratron

Herr, schmeiss Hirn vom Himmel - Autsch!

Die Erfahrung zeigt immer wieder, dass viele Probleme sich in Luft auslösen, wenn man sich den nötigen Abstand bzw. Schlaf gönnt.

3.003 Beiträge seit 2006
vor 14 Jahren

und in deiner Lösung steht immernoch ein "e" ohne Verwendungszweck rum.

Mal abgesehen davon, dass typeof(obj) == "undefined" für nicht definierte Objekte nur bei einigen Browsern true ist.


function eventHandler(evt) {
  if(event) evt.cancelBubble = true;
  else evt.stopPropagation();
}

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)