Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2008 Teil von Oktober

SELFHTML Forumsarchiv
onclick Funktion beibehalten

Informationsseite
  1. Seite (JAVASCRIPT) onclick Funktion beibehalten von T-Rex, 31. 10. 2008, 12:03
nach unten

onclick Funktion beibehalten

Die folgende Nachricht zum Thema stammt von: T-Rex, 31. 10. 2008, 12:03

Hallo nochmals *Seufz*

ich möchte eine Funktion die auf einem Eventhandler bereits sitzt beibehalten.
Also im prinzip sowas (pseudocode)

onclick = funtion;
if (onclick hat function)
{
   onclick = alte functionen + neue function;
}

wenn ich ein zweites mal
onclick = function
schreibe, dann überschreibe ich die erste gesetzte Funktion.

Wäre super wenn es da was geben würde :).

Mahlzeit
T-REx

nach obennach unten

onclick Funktion beibehalten

Die folgende Nachricht zum Thema stammt von: Jan L., 31. 10. 2008, 12:20

Hallo!

»» ich möchte eine Funktion die auf einem Eventhandler bereits sitzt beibehalten.
»» wenn ich ein zweites mal
»» onclick = function
»» schreibe, dann überschreibe ich die erste gesetzte Funktion.

Schau dir mal http://www.quirksmode.org/js/events_advanced.html an.


Gruß, Jan

nach obennach unten

onclick Funktion beibehalten

Die folgende Nachricht zum Thema stammt von: molily, 31. 10. 2008, 12:22

Mit dem traditionellen Event-Handling lassen sich mehrere Handler-Funktionen nur über komplizierte Umwege lösen, siehe Nachteile des traditionellen Event-Handlings.

Für solche Fälle solltest du dir eine Helferfunktion zulegen, die je nach Verfügbarkeit die moderneren W3C- oder das Microsoft-Modelle nutzt. Siehe etwa A Good Enough addEvent:

function addEvent (obj, type, fn) {
   if (obj.addEventListener) {
      obj.addEventListener(type, fn, false);
   } else if (obj.attachEvent) {
      obj.attachEvent('on' + type, function() {
         return fn.call(obj, window.event);
      });
   }
}


Anwendungsbeispiel:

function clickHandler () {
   // Meine Handlerfunktion
}
addEvent(document.getElementById("meinElement"), "click", clickHandler);


Oder mit anonymer Funktion:

addEvent(document.getElementById("meinElement"), "click", function () {
   // Meine Handlerfunktion
});


Mathias
--
JavaScript-Erweiterung für das SELFHTML-Forum

nach obennach unten

onclick Funktion beibehalten

Die folgende Nachricht zum Thema stammt von: T-Rex, 01. 11. 2008, 05:21

»» Mit dem traditionellen Event-Handling lassen sich mehrere Handler-Funktionen nur über komplizierte Umwege lösen, siehe Nachteile des traditionellen Event-Handlings.
»»
»» Für solche Fälle solltest du dir eine Helferfunktion zulegen, die je nach Verfügbarkeit die moderneren W3C- oder das Microsoft-Modelle nutzt. Siehe etwa A Good Enough addEvent:
»»
»» function addEvent (obj, type, fn) {
»»    if (obj.addEventListener) {
»»       obj.addEventListener(type, fn, false);
»»    } else if (obj.attachEvent) {
»»       obj.attachEvent('on' + type, function() {
»»          return fn.call(obj, window.event);
»»       });
»»    }
»» }

»»
»» Anwendungsbeispiel:
»»
»» function clickHandler () {
»»    // Meine Handlerfunktion
»» }
»» addEvent(document.getElementById("meinElement"), "click", clickHandler);

»»
»» Oder mit anonymer Funktion:
»»
»» addEvent(document.getElementById("meinElement"), "click", function () {
»»    // Meine Handlerfunktion
»» });

»»
»» Mathias

Hallo,

Mensch Mathias....am besten gibst du mir deine ICQ Nummer, denn du hast immer die richtigen Sachen parat. Bislang funktioniert das ausgesprochen super :).

Gibts sowas auch in die andere Richtung? Also eine Bestimmte funktion wegnehmen?
Beispiel:

onclick = function1(),function2();
deleteEvent(onclick,function2());
-> onclick = function1();

vielen Dank
Gruß
T-Rex

nach obennach unten

onclick Funktion beibehalten

Die folgende Nachricht zum Thema stammt von: Jan L., 01. 11. 2008, 10:57

Hi!

»» Gibts sowas auch in die andere Richtung? Also eine Bestimmte funktion wegnehmen?

Dazu gibt es die Methoden removeEventListener (W3C) bzw. detachEvent (IE).

Eine eigene Funktion, die für alle Browser funktioniert, kannst du dir analog
zu der, die dir Mathias gepostet hat, bauen.

Gruß, Jan

nach obennach unten

onclick Funktion beibehalten

Die folgende Nachricht zum Thema stammt von: Struppi, 01. 11. 2008, 11:04

»» Gibts sowas auch in die andere Richtung? Also eine Bestimmte funktion wegnehmen?

das steht doch auf den verlinkten Seiten?

Struppi.

nach obennach unten

onclick Funktion beibehalten

Die folgende Nachricht zum Thema stammt von: Timo "God's Boss" Reitz, 01. 11. 2008, 11:14

»» »» Gibts sowas auch in die andere Richtung? Also eine Bestimmte funktion wegnehmen?
»» das steht doch auf den verlinkten Seiten?
Im attachEvent-Zweig wird allerdings ein Funktionsobjekt erzeugt, davon ist keine Referenz nach außen verfügbar - das Entfernen selbiger halte ich also nicht für trivial.
--
Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.

Self-Code: sh:( ch:? rl:( br:> n4:( ie:{ mo:) va:) de:> zu:} fl:| ss:| ls:~ js:|

nach obennach unten

onclick Funktion beibehalten

Die folgende Nachricht zum Thema stammt von: molily, 01. 11. 2008, 11:33

»» Im attachEvent-Zweig wird allerdings ein Funktionsobjekt erzeugt, davon ist keine Referenz nach außen verfügbar - das Entfernen selbiger halte ich also nicht für trivial.

Ja, das ist ein Nachteil dieser bewusst einfach gehaltenen addEvent-Lösung. Die Wrapperfunktion ist nötig, damit der Handler im Kontext des Elements ausgeführt wird. Wer es komplizierter haben will, nimmt z.B. diese Lösung:
http://dean.edwards.name/my/events.js
Die verzichtet gänzlich auf das Microsoft-Modell und macht alles zu Fuß, dafür gibts ein vernünftiges removeEvent.

Mathias
--
JavaScript-Erweiterung für das SELFHTML-Forum

nach obennach unten

onclick Funktion beibehalten

Die folgende Nachricht zum Thema stammt von: molily, 01. 11. 2008, 11:34

»» am besten gibst du mir deine ICQ Nummer, denn du hast immer die richtigen Sachen parat.

Es gibt da eine Dokumentation namens SELFHTML, da schreibe ich alles rein, was ich parat habe, damit es viele Leute immer parat haben, ohne meine ICQ-Nummer zu kennen. Praktisch, nicht?

Mathias
--
JavaScript-Erweiterung für das SELFHTML-Forum

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2008 Teil von Oktober

© 1998-2008 Seite Impressum, Software: Classic Forum