这是一对夫妇不同的解决方案的混合体。在将 svg元素直接绑定到onclick事件时,我收到了错误消息。所以我采取了更多的间接路线。我在元素上添加了一个id标记,然后为该事件上的点击事件创建了jQuery侦听器,然后调用该函数。这里有一个的jsfiddle:https://jsfiddle.net/aedo6pmc/2/
这里的svg元素:
和JavaScript:
$(document).ready(function() {
$('#gSquare').on('click', function(e){
e.preventDefault();
clicked(e);
});
function clicked(evt){
e = evt.target;
dim = e.getBoundingClientRect();
x = evt.clientX - dim.left;
y = evt.clientY - dim.top;
console.log(x + ' ' + y);
$.ajax({
type: "POST",
url: 'play.php',
data: {X: x },
success: function(data)
{
alert("success! X:" + data);
}
});
}
});
只注意到何塞更新了自己的答案,包括同类型的方法。他将其直接绑定到svg元素,这可能已足够,但请确保如果页面上有多个svg,则您希望每个svg具有相同的行为。