Хорошо, получается, что первый способ создания SVG создает onclick
только на нарисованной части. Это означает, что вы действительно можете сделать что-то приятное (может быть, не полезно в вашем случае).
В this fiddle я создал два отдельных onclick
s, которые запускаются, когда вы нажимаете специально рисунок (который я сделал больше, чтобы вы могли видеть), и тот, который срабатывает, когда вы нажимаете на окно SVG, помещая контейнер вокруг Это.
HTML:
<div id="svgContainer">
<svg id="firstSVG" class="s" xmlns="http://www.w3.org/2000/svg">
<circle cx="50" cy="50" r="25" fill="red"/>
</svg>
</div>
JS:
document.getElementById('firstSVG').addEventListener('click', function (event) {
document.getElementById("output").innerHTML = "Click works here too !";
}, false);
document.getElementById('svgContainer').addEventListener('click', function (event) {
document.getElementById("output").innerHTML = "Well, a container seems better.";
}, true);
Поэтому в основном просто использовать контейнер вокруг SVG, или просто использовать нажмите на рисунок
Почему вы не используете JQuery, чтобы справиться с events.It легче? – boyd
На самом деле он работает на обоих. Но в хроме это работает только если вы нажмете на красную точку. – user568109