Ich habe ein Raphael-Element mit Click-Event-Handler:
%Vor% Wie kann ich dieses Ereignis manuell auslösen? ( c.click()
funktioniert nicht)
Danke!
Obwohl diese Frage bereits beantwortet ist, werde ich meine Lösung veröffentlichen, die ich zufällig herausgefunden habe. Es ist möglich mit den Raphael Internals:
Wenn Sie einen Ereignis-Listener wie element.click(func)
anhängen, enthält das Objekt element
ein Array mit allen Ereignissen. In diesem Array gibt es ein Objekt mit einer Methode f
(seltsame Namenskonvention), die das Ereignis auslöst.
Um es zusammenzufassen, können Sie Ihre Veranstaltung mit der Reihenfolge Ihrer Ereignisse aufrufen, in Ihrem Fall gibt es nur das click
-Ereignis, das sich auf Index 0 befindet. Sie können es wie folgt nennen: c.events[0].f();
Eine allgemeinere Lösung wäre eine Funktion wie
%Vor% Aber Vorsicht, wenn Sie mehrere click
-Ereignisse hatten, wurden alle ausgelöst.
Hier ist eine Geige zum Vorführen.
Ich habe tatsächlich einen etwas eleganteren Weg gefunden, Kris Methode zu verwenden. Raphael unterstützt die native Erweiterung des Element-Objekts, also habe ich einen kleinen Patch erstellt, um die Trigger-Methode zu raphael hinzuzufügen
hier ist es:
%Vor%Ich habe eine Js-Geige aufgestellt, um zu zeigen, wie sie funktioniert: hier
Obwohl dies schon vor einiger Zeit beantwortet wurde, suchte ich nach etwas, das etwas "nativer" in der Natur ist. Hier ist, wie ich darüber gehe, ohne auf Mootools oder jQuery angewiesen zu sein.
%Vor%Dadurch wird im Grunde das Ereignis im Browser erstellt und dann an den Knoten übergeben, der dem Raphaël-Objekt zugeordnet ist.
Hier ist auch der MOZ Link als Referenz: Ссылка
BEARBEITEN:
Die von Dan Lee beabsichtigte Lösung funktioniert besser.
Ich schreibe dafür ein Plug-in, benutze Event, um die richtige Position zu berechnen;
%Vor%Verwendung:
%Vor%Tags und Links javascript jquery events raphael