Событие щелчка Raphaeljs по изображению не работает в IE9

#jquery #click #internet-explorer-9 #raphael

#jquery #нажмите #internet-explorer-9 #рафаэль

Вопрос:

В следующем фрагменте кода срабатывает первое событие щелчка, но остальные этого не делают — в IE 9. Он отлично работает в Chrome и Firefox (и, очевидно, IE 8 — хотя я его не тестировал)

 $(document).ready(function () {
    var d = paper.image("/Content/images/male.png", 100, 100, 32, 32);
    d.click(function (event) {
        alert(this.node);
    });

    $.each(hierarchy.children, function (index, value) {
        DrawNode(paper, value);
    });
})

function DrawNode(paper, currentPerson) {
     var currentNode = paper.image("/Content/images/male.png", currentPerson.X, currentPerson.Y, 32, 32).attr({ stroke: "none", fill: "none" });
     currentNode.click(function (event) {
         alert(this.node);
      });
    }
  

В IE9 щелчок по корневому узлу показывает [объект SVGImageElement] — на других узлах событие не запускается. В других браузерах вы получаете то же самое (SVGImageElement) для всех узлов

Комментарии:

1. Последняя фиксация кода была 26 августа 2010 года, так что вполне возможно, что IE9 не поддерживается. Медленные темпы разработки — моя самая большая проблема с этой библиотекой

2. Последняя фиксация кода была 5 апреля 2011 года.

Ответ №1:

Это временное решение для всех, кто ищет. Вы можете поместить квадрат, круг или любой другой вектор позади вашего изображения и привязать к нему события.

В IE9 это работает путем нажатия на фигуру за изображением — во всех других браузерах срабатывает событие image.