Pracowałem z Raphaelem nad tworzeniem kształtów "przeciągnij i upuść" na płótnie. Robię to za pomocą funkcji .drag() (dostarczanej w ramach Raphaela) wraz z moimi funkcjami zdarzeń. Nie mam żadnych problemów z tym.Raphael canvas (background) onclick event
Mam również funkcję, która tworzy nowy kształt naDblClick, problem polega na tym, że mogę dołączyć wydarzenie tylko do kształtów lub innych elementów, które tworzę.
Dodawanie wydarzeń do kształtu działa tak:
R = Raphael("canvas", "100%", "100%"),
R.rect(100, 100, 25, 50).attr({fill: fillColor}).dblclick(myDblClick);
Stosując tę samą zasadę, na płótnie nie działa:
R = Raphael("canvas", "100%", "100%"),
R.dblclick(myDblClick);
Czy ktoś zna sposób, aby dołączyć kliknij wydarzenia do płótna, tzn. mogę kliknąć w dowolnym miejscu w div (bez kształtów), a zdarzenie zostanie uruchomione.
Dzięki.
Problem z tym, że zdarzenie jest nadal wywoływane, jeśli kliknięcie kształtu. Chcę tylko, aby tło miało zastosowanie do tego wydarzenia. –
Wewnątrz myDblClick, sprawdź event.originalTarget i jeśli jest to węzeł "rect" itp., A następnie uruchom niestandardowe zdarzenie. $ ('# canvas'). trigger ('dblclick.raphDblClick', {origEvent: event}) ;. Coś wzdłuż tych linii powinno działać –
Zwykle przesuwasz "papier" dookoła, więc 'paper.canvas' również powinien działać. – tokland