Don P: Problem mit "with" (Mehrere Anweisungen für ein Objekt)

Beitrag lesen

Hallo,

Die with-Anweisung ist ohnehin mit Vorsicht zu genießen, d.h. besser zu vermeiden, weil oft nur schwer erkennbar ist, welche Variablen eigentlich dabei angesprochen werden.

Danke, dass wollte ich immer schon mal wissen! Ich war mir sowieso nicht so sicher, ob ich sie verwenden soll.

Besser nicht.
with sucht die Variablen zuerst im angebenen Scope, in deinem Fall also im Scope der HTML-Collection. Wenn dort eine Eigenschaft mit dem angegebenen Namen existiert, wird sie auch verwendet. Wenn nicht, wird im nächst höheren Scope gesucht usw. usf., wenn nötig bis hinauf zum globalen Objekt (window).
Daher weiß man oft nicht so genau, welche Variable/Eigenschaft von welchem Objekt nun eigentlich im with-Block angesprochen wird.

Von der Logik her müsste es so sein: Weil keine Methode "addEventListener" im HTMLCollection-Objekt existiert, wird das document-Objekt herangezugen, wo sie nämlich existiert, und deshalb auch verwendet wird. Also sollten deine Eventhandlerfunktionen ans document-Objekt gehängt werden.

Bist du wirklich sicher, dass sie nur deinen "dropbox"-Elementen zugewiesen sind und nicht etwa dem ganzen document?

Gruß, Don P