Javascript Events und Vererbung

Schon einmal versucht auf verschachtetle Divs unterschiedliche events zu legen, z.B. onclick-Events? Und schon mal gewundert, dass dann mehrere Aufrufe erfolgten? Nun, das ist nicht verwunderlich, da die Events vom Kind-Element an die Eltern-Elemente weiter gegeben werde. So das dann z.B. bei folgendem Code beim Klick auf Kindelement zwei Alerts aufgerufen werden.

Elternelement
Kindelement
möchte man, das nur Kindelement angezeigt wird, so muss man das standartverhalten von Javascript unterbinden und das sogenannte Bubble, stoppen. Dies erfolgt durch einen kleinen Code:
Elternelement
Kindelement

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

Hierdurch wird die weitergabe des Events gestoppt und man erhält nur ein Alert.


JavaScript debuggen in Visual Studio 2005 und IE8

Vor kurzem habe ich auf meinem Rechner den IE auf IE8 aktualisiert (Für testzwecke war hier noch IE7 installiert). Seit dem hatte ich das Problem, das ich bei Projekten im VS 2005 (Visual Studio 2005) nciht wie gewohnt debuggen konnte. Habe ich im Javascript ein "debugger;" gesetzt, so wollte wurde ich gefargt in welcher VS Instanz ich debuggen will. Leider wurde mir nie das VS angeboten, in dem ich das Projekt offen hatte, sondern entweder ein anderes (sofern weitere offen waren) , oder ob ich eine neue Instanz öffnen will. Nun habe ich eine Lösung gefunden: http://stackoverflow.com/questions/663144/why-cant-i-debug-from-visual-studio-2005-after-installing-ie8 1. RegEdit öffnen (Start-> Ausführen-> regedit eingeben und öffnen) 2. in den Ordner Main unter HKEY_LOCALMACHINE -> SOFTWARE -> Microsoft -> Internet Explorer -> Main 3. ein dword-Wert einfügen mit dem Name TabProcGrowth 4. den Wert auf 0 setzen, sofern nicht aautomatisch erfolgt Nun kann man wie gewohnt debuggen!! Hoffe das hilft auch anderen Weiter


Apps aus Deutschland
Einfacher Datei-Sync für Desktop und Laptop



Impressum: CodeRR Robert Rafai - Heidacker 22 -27572 Bremerhaven Tel: 01799209660