Der Martin: if-operatoren...bräuchte Hilfe

Beitrag lesen

Hallo,

Warum funktioniert mein Ansatz dann aber nicht? Wenn ich dort die 2. Variante (wenn html "full" heißen soll), lösche, wird der Button wieder korrekt umbenannt und der href geändert.

ändert deine JS-Funktion aendern() womöglich auch die ID des body-Elements in "full"? Dann wäre das Verhalten erklärbar: Wenn die ID "htm" heißt, wird der erste if-Block ausgeführt. Sobald der beendet ist, wäre die ID aber plötzlich "full", also trifft die Bedingung im zweiten if-Block jetzt auch zu und die darin notierten Anweisungen machen die Änderung wieder rückgängig.

Falls das so ist, setz mal vor die zweite if-Anweisung ein else, so dass der gesamte zweite Block nur beachtet wird, wenn die erste Bedingung nicht zutraf.

Bei einer Textmarke steuert man doch aber auch keine neue Ressouce an, sondern bewegt sich nur auf der aktuellen Seite.

Okay, Punkt für dich. ;-)

Das kommt drauf an, für welches Element der Eventhandler notiert ist. Bei Links, Buttons, o.ä. feuert onclick auch,
Kann man sie dann eigentlich auch noch mit der Tabulator-Taste ansteueren, wenn kein href-Attribut existiert?

Soweit ich eben ausprobiert habe: Nein. Die Navigation mit der Tab-Taste scheint nur die Elemente zu berücksichtigen, die sich auch im Normalfall für die Tastatur interessieren (Links und Formularelemente).

Nein, eigentlich sollte, wenn wir vom Link reden, im href eine Ressource stehen, die dem Benutzer ohne Javascript einen alternativen, vielleicht weniger komfortablen Zugang zur vorgesehenen Ressource bietet.
Wenn der Nutzer aber javascript an hat, werden doch beide aktionen ausgeführt oder? Ein Nutzer mit javascript will doch aber keine neue Seite laden.

Deswegen sollte der Javascript-Eventhandler auch false zurückgeben, wenn die normale Funktion z.B. des Links nicht auch noch zusätzlich ausgeführt werden soll. Mit false als Rückgabewert wird nämlich die weitere Verarbeitung des Events beendet.

Ciao,
 Martin

--
Lebensmotto der Egoisten:
Was ist so schlimm daran, dass jeder nur an sich selbst denkt? Dann ist doch an alle gedacht!