Aloha ;)
Im Speziellen gibt es keinerlei rationalen Grund, bei Einsatz eines Frameworks nicht auch die zur Verfügung stehenden nativen Methoden mit einzubeziehen.
Einen technischen Grund gibt es nicht, aber vielleicht einen methodischen.
Nein, auch der beruht auf unreflektiertem Anwenden von Prinzipien und ist (in diesem Fall) nicht sinnvoll begründbar. Und an Empfehlungen die ich geben möchte knüpfe zumindest ich die Bedingung, dass sie und die zugrundeliegenden Beweggründe sinnvoll belegt werden können - abseits von allgemein formulierten Prinzipien.
Was wäre an
$(this).parent()
jetzt umständlicher als an$(this.parentNode)
?Man könnte, und darauf wollte Felix wahrscheinlich raus, gemäß Funktionsaufruf vs. Attributzugriff diskutieren.
Was ändert das für den Entwickler? Für den Entwickler wäre es eher umständlich, verschiedene Konzepte gemischt zu verwenden.
Stimmt nicht. Methodenaufruf vs. Attributzugriff ist eine Frage der Performance, also sehr wohl für den Entwickler relevant. Dass das in diesem Fall ein eher illegitimes Argument ist habe ich ja schon gesagt. Grundsätzlich ist das aber schon relevant.
Dagegen ist das "verschiedene Konzepte gemischt zu verwenden" nur dann schädlich, wenn man sich mit seinem Handwerkszeug (noch) nicht auskennt. Wenn man weiß was man tut stellt das kein Problem dar, auch kein konzeptionelles.
Das geht in allen UA, die diese Methode [
querySelectorAll()
] anbieten.Also in allen relevanten.
Allerdings wisst ihr Beide nicht, ob legacy-support in diesem Fall wichtig ist oder nicht
Es ist 2016 und das Prinzip von progressive enhancement hat sich immer noch nicht herumgesprochen. :-(
Das An-/Abwählen der einzelnen Checkboxen funktioniert bestens in allen Browsern. Der Komfort, alle Checkboxen einer Gruppe mit einem Click an-/abwählen zu können, kommt obendrauf.
nana, jetzt schießt du aber übers Ziel hinaus. Auch mit der entsprechenden jQuery-Methode stellt das ganze progressive enhancement dar, das An-/Abwählen einzelner Checkboxen war ja nie Gegenstand des Gesprächs.
Also: Erklär mir mal, inwiefern progressive enhancement via Vanilla-JavaScript besser ist, als progressive enhancement via jQuery, das auch in veralteteren (<- Unwort) Browsern die "enhancete" Funktionalität zur Verfügung stellt.
Du hast grad argumentiert, dass es sinnvoll ist, veralteten Browser nicht die volle Funktionalität zur Verfügung zu stellen, wenn man die freie Wahl hat das zu tun oder zu lassen :P
Progressive Enhancement ist der Weg, Funktionierendes nicht kaputtzumachen und für veraltete Browser Basisfunktionalität zur Verfügung zu stellen oder zumindest nicht zu verbauen. Das ist besser, als veraltete Browser grundsätzlich auszuschließen (was mit jQuery ja gerade nicht passiert, und in diesem Fall sowieso nie im Raum stand), aber sicher schlechter als ein Tool (jQuery) zu benutzen, was auch veralteten Browsern volle Funktionalität zur Verfügung stellt.
Und wie gesagt, in diesem speziellen Fall ist legacy-Browsersupport sogar noch mit progressive enhancement kombiniert, so what?
Grüße,
RIDER