Firefox 24.0 onclick не стреляет по правильной цели

0

В последнее время у меня возникли некоторые серьезные проблемы с Firefox. Мой код работает гладко в Chrome, но у Firefox, похоже, есть некоторые проблемы с выяснением того, что я нажимаю. Вы слышали об этом? У меня в основном есть куча SVG в div. В divs есть событие onclick, чтобы вызвать функцию, которая срабатывает, но на неправильном div. Поэтому я нажимаю на div справа, а div слева получает щелчок.

вот javascript

http://pastebin.com/wbYnqT4B

и вот HTML

http://pastebin.com/aXMyYtS8

Он генерирует эти элементы и позиционирует их на всей странице, а при нажатии появляется окно с информацией о элементе. Но другие элементы, кажется, претендуют на то, чтобы быть целью событий, несмотря на то, что я нажимал на несколько сотен пикселей от них.

<div id="6-084" class="room" fullname="John Smith" phonenum="None" pcname="Unknown" wallplatenum="Unknown" onclick="displayInfo(event)" style="height: 72px; width: 96px; position: absolute; left: 753px; top: 236px; opacity: 1;">
    <svg id="6-084-svg" style="-webkit-backface-visibility: hidden;" class="room">
        <g id="6-084-svg-g">
            <path style="fill:none; stroke: black; stroke-width: 2;" d="M 95,1 L 95,51 Q 80,51 80,66 L 95,66 L 95,71 L 1,71 L 1,1 Z "></path>
        </g>
    </svg>
    <div id="6-084 divP" style="position: absolute; z-index: 2; top: 20.5px; left: 34px;">
        <p id="6-084 P" style="text-align:center;">Name</p>
    </div>
</div>

Вы увидите, что я говорю, когда вы нажимаете SVG для одного с надписью "54", и он запускает SVG для "57". Он также срабатывает просто отлично, если вы нажмете тег p, содержащий "54". Поэтому я предполагаю, что это имеет отношение к SVG.

Есть идеи?

(также, я знаю, что все не согласовано, и я приношу свои извинения за это. Я просто переписал, как он создает теги пути, поэтому мне не нужно беспокоиться о повороте div при их размещении, а теперь все неуместно.)

Теги:
svg
onclick
firefox

1 ответ

1
Лучший ответ

Добавить

svg.setAttribute("width", "100%");
svg.setAttribute("height", "100%");

после каждой из этих строк

var svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");

И это, похоже, исправить. На данный момент вы полагаетесь на ошибку webkit, чтобы ваш код работал.

  • 0
    Как странно ... Я просто подумал, что SVG автоматически использует их в качестве настроек по умолчанию, видя, как это работает в Chrome. Спасибо!
  • 0
    Вы не одиноки там, однако спецификация SVG говорит иначе . Обратите внимание, что все точки маркера верны, поэтому это означает, что если оставить ширину не заданной, то не будет того, что, как вы думаете, должно быть.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню