Обработка событий в библиотеке Raphael Javascript - PullRequest
0 голосов
/ 26 августа 2011

Я работаю с библиотекой Raphael JS.Это было так здорово и соответствует требованиям.Я пытаюсь выяснить, как написать общий обработчик событий для всех узлов в библиотеке.Мне понадобится экземпляр объекта «clicked» для настройки его атрибута при событии click.

Я объявил идентификатор для «Raphael canvas» в CSS, поэтому при любом нажатии на холст я получал событие вэтот обработчик, использующий jQuery.Я также прикрепил 'node.id' для всех узлов холста.

Вот прототип gen.обработчик события.

$j('#holder').bind('click', function(event) {

  // event handler.

}

Однако я не могу получить «экземпляр объекта» узла, по которому был выполнен щелчок. Атрибут

event.srcElement также не удался.

Любая помощь будет принята с благодарностью.

Спасибо, Картик.

Ответы [ 2 ]

2 голосов
/ 21 февраля 2012

Я думаю, что проблема может заключаться в том, что вы используете функцию щелчка jQuery для привязки события к DOM / SVG / VML, который выводит Raphael, когда кажется, что вы хотите получить исходный объект данных Raphael, который управляет этимвывод (а не сам вывод).

Таким образом, вы, вероятно, получите то, что вы хотите, вызвав собственную функцию .click() Рафаэля, привязанную к переменной, которую вы определили при первом вызове функции Рафаэля (например, someVarв var someVar = Raphael(xxx...);).

Затем в функции this должен выдать объект Raphael (хотя вызов переменной, которую вы уже определили из .click(function(){ });, может дать более надежные результаты, особенно если позжеВы хотите связать событие с набором ).event.target, скорее всего, все равно выдаст элемент DOM, на который был фактически нажат.

Вот как это работает для элементов, та же или похожая логика, вероятно, будет следовать для самой бумаги / холста.

0 голосов
/ 30 августа 2011

Разве это не должно быть event.target?

(согласно http://api.jquery.com/category/events/event-object/).

...