napi: <a> mit Einzelklick + Doppelklick

Ich will ein <a> eine Zieladresse bei einem Einzelklick und eine Zieladresse mit einem Doppelklick geben. Ich habe schon halb selfhtml durchforstet und nichts dazu gefunden, wie man speziel <a>s umbaut.
Wäre nett, wenn ihr mir helfen könntet.

(so stell ich mir das vor, ist mir schon klar, dass es so nicht mal annähern klappen kann:
<a (onklick)href="seite1.html" (onDBLklick)href="seite2.html">Link</a>)

  1. Hallo napi,

    Ich will ein <a> eine Zieladresse bei einem Einzelklick und eine Zieladresse mit einem Doppelklick geben. Ich habe schon halb selfhtml durchforstet und nichts dazu gefunden, wie man speziel <a>s umbaut.

    (so stell ich mir das vor, ist mir schon klar, dass es so nicht mal annähern klappen kann:
    <a (onklick)href="seite1.html" (onDBLklick)href="seite2.html">Link</a>)

    erst einmal: Du brauchst eine HTML Referenz

    http://de.selfhtml.org/html/verweise/index.htm

    dann benötigst du event handler:

    http://de.selfhtml.org/javascript/sprache/eventhandler.htm#ondblclick
    http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onclick

    und zum Schluss ein paar Stichworte im Forums-Archiv, z.B.

    http://forum.de.selfhtml.org/archiv/2006/6/t131554/#m851350

    Mit freundlichen Grüßen,
    André

    1. Hallo napi,

      Hi André xD

      erst einmal: Du brauchst eine HTML Referenz

      http://de.selfhtml.org/html/verweise/index.htm

      Was soll mir das sagen? Ich weiß wie man "normale" Links macht etc., mir geht es nur um eine dblklickfunktion

      dann benötigst du event handler:

      http://de.selfhtml.org/javascript/sprache/eventhandler.htm#ondblclick
      http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onclick

      Hab' ich mir schon beides durchgelesen und habe es bis jetzt nicht hingekriegt die Beispiele auf <a> umzuschreiben...

      und zum Schluss ein paar Stichworte im Forums-Archiv, z.B.

      http://forum.de.selfhtml.org/archiv/2006/6/t131554/#m851350

      ...

      Mit freundlichen Grüßen,
      André

      Hmm, danke für den Versuch, mir zu helfen ;)

      1. Hi,

        Hab' ich mir schon beides durchgelesen und habe es bis jetzt nicht hingekriegt die Beispiele auf <a> umzuschreiben...

        Was umschreiben? Es ist völlig egal, in welchem Tag sich der Eventhandler befindet, solange dieser im Tag selbst erlaubt ist.
        Somit musst du lediglich mit onclick und ondblclick ein location.href aufrufen. Auf <a> umschreiben gibts da nicht.

        1. Hi,

          Somit musst du lediglich mit onclick und ondblclick ein location.href aufrufen. Auf <a> umschreiben gibts da nicht.

          Bei Links muß die Routine mit einem "return false;" abschließen, damit sich HTML-URL und JS-URL nicht ins Gehege kommen. Der HTML-Link wird ja sonst ebenfalls ausgeführt. Das ist zu unterbinden, wenn nicht erwünscht.

          Gruß, Cybaer

          --
          Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
      2. Hallo napi,

        http://forum.de.selfhtml.org/archiv/2006/6/t131554/#m851350

        <a href="url" onclick="alert('Klick')" ondblclick="alert('Doppelklick')" title="Text">Text</a></p>

        bringt immer nur ein "Klick"-Alert. Warum? Woher soll der Browser wissen, ob du zwei 'Klicks' machen willst oder ein Doppelklick?

        Mit freundlichen Grüßen,
        André

        1. Hallo,

          <a href="url" onclick="alert('Klick')" ondblclick="alert('Doppelklick')" title="Text">Text</a></p>
          bringt immer nur ein "Klick"-Alert. Warum? Woher soll der Browser wissen, ob du zwei 'Klicks' machen willst oder ein Doppelklick?

          das ist nicht das Problem, denn das sortiert das Betriebssystem/GUI schon passend aus. Aber das Problem ist, dass beim ersten Klicken (bei dem noch niemand weiß, ob's ein Doppelklick werden könnte) schon das Alert für den Einfachklick ausgelöst wird.
          Im Fall des alert()-Beispiels geht der zweite Klick an die alert-Box, die zu dem Zeitpunkt den Focus hat. Das Dokument im Browserfenster bekommt den Doppelklick-Event also nie zu sehen.
          Wenn man bei einem Einzelklick auf Seite A, bei einem Doppelklick aber auf Seite B verzweigen will, ist es im Prinzip dasselbe: Beim ersten Klick wird Seite A angefordert, der zweite Klick (auch wenn er in kurzem Abstand kommt) wird dann schon an Seite A gemeldet, nicht an das ursprüngliche Dokument.

          Man muss also immer, wenn man den Doppelklick verwenden will, auch überlegen, was der Einzelklick vorher schon tut und ob man den Doppelklick dann überhaupt noch bearbeiten *kann*.

          Ciao,
           Martin

          --
          Zum Glück ist alles nur halb so doppelt.
          1. hi,

            Woher soll der Browser wissen, ob du zwei 'Klicks' machen willst oder ein Doppelklick?

            das ist nicht das Problem, denn das sortiert das Betriebssystem/GUI schon passend aus.

            Eben das könnte ein Grund sein, der dem ganzen entgegensteht.

            Es gibt ja in manchen Browsern so hilfreiche Optionen á la "detect accidential double clicks" - sprich, wenn der unerfahrene Nutzer auf einen Link doppelklickt, wird das abgefangen, und davon ausgegangen, dass eigentlich ein einfacher Klick beabsichtigt gewesen wäre.
            Ich habe Zweifel, ob damit das Vorhaben in Browsern, in denen eine solche Option aktiviert ist, noch umsetz- bzw. durchführbar wäre.

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
          2. Hallo,

            Woher soll der Browser wissen, ob du zwei 'Klicks' machen willst oder ein Doppelklick?

            das ist nicht das Problem, denn das sortiert das Betriebssystem/GUI schon passend aus.

            Doch, das ist das Problem. Ein normaler Doppelklick erzeugt - auch wenn er nicht durch ein alert() beim ersten Klick unterbrochen wird - immer einen click *und* einen dbclick.

            Siehe auch http://forum.de.selfhtml.org/archiv/2006/6/t131554/.

            Mathias

            1. Hallo Mathias,

              das ist nicht das Problem, denn das sortiert das Betriebssystem/GUI schon passend aus.
              Doch, das ist das Problem. Ein normaler Doppelklick erzeugt - auch wenn er nicht durch ein alert() beim ersten Klick unterbrochen wird - immer einen click *und* einen dbclick.

              das ist mir klar. Und das ist nicht nur in der Event-Verwaltung des Browsers so, sondern auch bei der Programmierung auf API-Ebene.

              Deswegen betone ich ja so stark, dass man die Auswirkung des Einzelklicks mit bedenken muss, wenn man den Doppelklick für eine Aktion nutzen möchte.

              Mit "das ist nicht das Problem" meinte ich nur, dass die Applikation sich nicht darum kümmern muss, in welchem zeitlichen Abstand zwei Klicks auf dasselbe Objekt auftreten. Die Entscheidung darüber, ob der zweite Klick als Doppelklick interpretiert wird oder, weil zuviel Zeit vergangen ist, als unabhängiger weiterer Einfachklick, wird einem vom GUI abgenommen.

              Siehe auch http://forum.de.selfhtml.org/archiv/2006/6/t131554/.

              Ja, mit solchen Konstruktionen kann man auch widersprüchliche Einfach/Doppelklick-Aktionen zuordnen. Problem: Man kennt das Zeitlimit nicht, das das GUI zur Unterscheidung zwischen Einfach- und Doppelklick heranzieht. Also erzeugt man mit so einer Lösung eventuell ein Verhalten, das ein wenig von den sonst gewohnten Einstellungen des Users abweicht.

              So long,
               Martin

              --
              Nicht jeder, der aus dem Rahmen fällt, war vorher im Bilde.
  2. Hi,

    <a (onklick)href="seite1.html" (onDBLklick)href="seite2.html">Link</a>)

    Geht nur mit Javascript. onclick() dürfte helfen. Sollte es einen für Doppelklick geben, steht der mit Sicherheit in der nähe innerhalb von Selfhtml. Wenn es den nicht gibt (hab den noch nie gebraucht, weiss ich also nicht), wirst du dir was basteln müssen.