2016-09-09 5 views
-1

Da jeder Browser anders funktioniert, was ist der Ansatz für eine gut funktionierende Website? Ich meine ich kann nicht wissen, ob ich es an die sprudelnde oder erfassende Phase anhängen will, da ich nicht weiß, was der andere Browser zuerst macht. Und ich möchte nicht für jeden Browser Code schreiben. Corrent mich, wenn ich falsch liege, aber ich lese, dass jeder Browser anders verhält. Also muss ich zu jedem "Kind-Widget", das ich auf der Website habe, einen Listener hinzufügen und stopPropagation() und cancelBubble = true; in jedem Listener tun, um Verhalten sicher zu haben?Javascript Event Bubbling/Caputuring

+1

Verwenden Sie jQuery. Dies ist (auch) beabsichtigt, Sie werden ein einheitliches Verhalten für alle Browser haben. – WaldemarIce

+0

Konnten Sie ein Codebeispiel zeigen, das Ihnen ein Problem gibt? – Kilmazing

+0

Dies hängt sehr davon ab, welche Browser Sie unterstützen müssen. Neuere Browser verarbeiten normalerweise Ereignisse gemäß den Standards, sodass Sie sich keine Sorgen machen müssen. Was ist Ihr Anwendungsfall (im Code) und welche Browser müssen Sie unterstützen? – nils

Antwort

1

Ich meine ich kann nicht wissen, ob ich es an bubbling oder capturing Phase, da ich nicht weiß, was der andere Browser zuerst tun.

Das Verhalten von Ereignissen ist vollständig in der DOM-Spezifikation definiert. Die Capture-Phase findet vor der Bubble statt. Siehe die folgende Grafik von Event dispatch and DOM event flow:

graphical representation of an event dispatched in a DOM tree using the DOM event flow

Moderne Browser kompatibel sind.

Korrigieren Sie mich, wenn ich falsch liege, aber ich lese, dass jeder Browser anders verhält.

Nur alte Browser verhalten sich unzuverlässig.