zugängliches Dropdown-Menü funzt net
bearbeitet von
@@Gunnar Bittersmann
> Bei `setAttribute()` bzw. `getAttribute()` ist zu sehen, was die Methode tut – ob man einen Attributwert setzt oder ausliest. Bei `attr()` ist das nicht der Fall! Man muss erst die Anzahl der Argumente zählen.
Es ist sogar noch schlimmer: `attr()` tut verschiedene Dinge und gibt – je nach übergebenen Argumenten – verschiedene *Typen* zurück: `attr('foo', 'bar')` ein jQuery-Objekt; `attr('foo')` einen String (bzw. `undefined`, wenn es kein foo-Attribut gibt).
Das hat zur Folge, dass der Code schnell fehleranfällig wird:
~~~JavaScript
$(selector).attr('foo', 'bar').hide(); // OK
$(selector).attr('foo').hide(); // TypeError: $(...).attr(...).hide is not a function
~~~
> kürzerer Code ≠ besser lesbarer Code
kürzerer Code ≠ besser wartbarer Code
LLAP 🖖
--
“When UX doesn’t consider *all* users, shouldn’t it be known as ‘*Some* User Experience’ or... SUX? #a11y” —[Billy Gregory](https://twitter.com/thebillygregory/status/552466012713783297)
zugängliches Dropdown-Menü funzt net
bearbeitet von
@@Gunnar Bittersmann
> Bei `setAttribute()` bzw. `getAttribute()` ist zu sehen, was die Methode tut – ob man einen Attributwert setzt oder ausliest. Bei `attr()` ist das nicht der Fall! Man muss erst die Anzahl der Argumente zählen.
Es ist sogar noch schlimmer: `attr()` tut verschiedene Dinge und gibt – je nach übergebenen Argumenten – verschiedene *Typen* zurück: `attr('foo', 'bar')` ein jQuery-Objekt; `attr('foo')` einen String (bzw. `undefined`, wenn es kein foo-Attribut gibt.
Das hat zur Folge, dass der Code schnell fehleranfällig wird:
~~~JavaScript
$(selector).attr('foo', 'bar').hide(); // OK
$(selector).attr('foo').hide(); // TypeError: $(...).attr(...).hide is not a function
~~~
> kürzerer Code ≠ besser lesbarer Code
kürzerer Code ≠ besser wartbarer Code
LLAP 🖖
--
“When UX doesn’t consider *all* users, shouldn’t it be known as ‘*Some* User Experience’ or... SUX? #a11y” —[Billy Gregory](https://twitter.com/thebillygregory/status/552466012713783297)
zugängliches Dropdown-Menü funzt net
bearbeitet von
@@Gunnar Bittersmann
> Bei `setAttribute()` bzw. `getAttribute()` ist zu sehen, was die Methode tut – ob man einen Attributwert setzt oder ausliest. Bei `attr()` ist das nicht der Fall! Man muss erst die Anzahl der Argumente zählen.
Es ist sogar noch schlimmer: `attr()` tut verschiedene Dinge und gibt – je nach übergebenen Argumenten – verschiedene *Typen* zurück: `attr('foo', 'bar')` ein jQuery-Objekt; `attr('foo')` ein String (bzw. `undefined`, wenn es kein foo-Attribut gibt.
Das hat zur Folge, dass der Code schnell fehleranfällig wird:
~~~JavaScript
$(selector).attr('foo', 'bar').hide(); // OK
$(selector).attr('foo').hide(); // TypeError: $(...).attr(...).hide is not a function
~~~
> kürzerer Code ≠ besser lesbarer Code
kürzerer Code ≠ besser wartbarer Code
LLAP 🖖
--
“When UX doesn’t consider *all* users, shouldn’t it be known as ‘*Some* User Experience’ or... SUX? #a11y” —[Billy Gregory](https://twitter.com/thebillygregory/status/552466012713783297)
zugängliches Dropdown-Menü funzt net
bearbeitet von
@@Gunnar Bittersmann
> Bei `setAttribute()` bzw. `getAttribute()` ist zu sehen, was die Methode tut – ob man einen Attributwert setzt oder ausliest. Bei `attr()` ist das nicht der Fall! Man muss erst die Anzahl der Argumente zählen.
Es ist sogar noch schlimmer: `attr()` tut verschiedene Dinge und gibt – je nach übergebenen Argumenten – verschiedene *Typen* zurück: `attr('foo', 'bar')` ein jQuery-Objekt; `attr('foo')` eine String (bzw. undefined, wenn es kein foo-Attribut gibt.
Das hat zur Folge, dass der Code schnell fehleranfällig wird:
~~~JavaScript
$(selector).attr('foo', 'bar').hide(); // OK
$(selector).attr('foo').hide(); // TypeError: $(...).attr(...).hide is not a function
~~~
> kürzerer Code ≠ besser lesbarer Code
kürzerer Code ≠ besser wartbarer Code
LLAP 🖖
--
“When UX doesn’t consider *all* users, shouldn’t it be known as ‘*Some* User Experience’ or... SUX? #a11y” —[Billy Gregory](https://twitter.com/thebillygregory/status/552466012713783297)