Я нашел решение с заменой источника на Raphael.js
заменить в строке 2031
R["un" + eventName] = elproto["un" + eventName] = function (fn) {
var events = this.events,
l = events.length;
while (l--) if (events[l].name == eventName && || events[l].f == fn) {
events[l].unbind();
events.splice(l, 1);
!events.length && delete this.events;
return this;
}
return this;
};
с этим
R["un" + eventName] = elproto["un" + eventName] = function (fn) {
var events = this.events,
l = events.length;
while (l--) if (events[l].name == eventName && (!fn || events[l].f == fn) ) {
events[l].unbind();
events.splice(l, 1);
!events.length && delete this.events;
return this;
}
return this;
};
поэтому в настоящее время, если не предусмотрена функция обработчика для отмены привязки функций, она отменит все функции обработчика для этого события
пример использования element.unclick();
(то же самое для других событий, например element.unmouseout()
)