MouseListener und HTML5-Canvas-Objekt

7

Ich habe mir Tutorials angeschaut und trotzdem kann ich nicht herausfinden, wo ich falsch liege. Es scheint, als sollte es sehr geradlinig sein, aber es gibt mir Probleme. Im Folgenden finden Sie einen einfachen Code zum Erstellen eines Maus-Listeners für ein Canvas-Objekt. Derzeit wird die Funktion clickReporter nicht aufgerufen, wenn auf die Arbeitsfläche geklickt wird. Irgendwelche Ideen warum nicht?

HTML5

%Vor%

JavaScript

%Vor%     
Austin 11.10.2011, 18:54
quelle

1 Antwort

20

Sie sollten "klicken" und nicht "onclick" verwenden. "on" wird nur verwendet, wenn es als Eigenschaft festgelegt wird (z. B. canvas.onclick = clickReporter).

%Vor%

AKTUALISIEREN

Weitere Details zu Klick und Onclick.

Es gibt drei Möglichkeiten, einen Ereignis-Listener an ein Objekt in JavaScript anzuhängen:

  1. Über element .addEventListener. Wenn Sie dies verwenden, geben Sie den Namen des Ereignisses an, den Sie festlegen möchten. Zum Beispiel "Klicken" oder "Mouseover" oder "Touchstart". In diesem Fall geben Sie den tatsächlichen Namen des Ereignisses an. Dies ist nützlich, da Sie einem Ereignis mehr als einen Listener hinzufügen können.

    %Vor%
  2. Durch Element .einesEreignis (onclick, onmouseover, ontouchstart). Dies ist eine ältere Konvention, die vollständig Standard ist und in HTML5 unterstützt wird. Dies ist eine sehr einfache Möglichkeit, den Ereignis-Listener einzustellen, aber er hat seine Nachteile. Mit dieser Methode kann immer nur ein Ereignis-Listener festgelegt werden:

    %Vor%
  3. Durch das HTML selbst. Hier begannen alle Konventionen. Sie können ein Ereignis direkt im HTML-Code definieren, ähnlich wie im vorherigen Beispiel:

    %Vor%

    Dies ist das Folgende, vorausgesetzt, dass clickReporter mit dem Fensterobjekt verknüpft wird.

    %Vor%

Die Art und Weise, wie Sie es tun, ist wohl der beste Weg. Es wird sicherlich Fälle geben, in denen Sie die anderen Methoden verwenden möchten, wie das Erzeugen einer Seite auf dem Server oder das vorübergehende Unterdrücken des Scrollens auf einem iPhone, aber für die meisten Anwendungen ist addEventListener das Beste.

    
Brian Nickel 11.10.2011, 21:51
quelle