[英]javascript get x and y coordinates on mouse click
我有一个小 div 标签,当我单击它( onClick
事件)时,它将运行printMousePos()
函数。 这是HTML
标签:
<html>
<header>
<!-- By the way, this is not the actual html file, just a generic example. -->
<script src='game.js'></script>
</header>
<body>
<div id="example">
<p id="test">x: , y:</p>
</div>
</body>
</html>
这是一个单独的 .js 文件中的 printMousePos 函数:
function printMousePos() {
var cursorX;
var cursorY;
document.onmousemove = function(e){
cursorX = e.pageX;
cursorY = e.pageY;
}
document.getElementById('test').innerHTML = "x: " + cursorX + ", y: " + cursorY;
}
是的,该函数实际上有效(它知道您何时单击它以及所有这些),但它对 x 和 y 都返回 undefined,所以我假设函数中的 get x 和 y 代码不正确。 有任何想法吗? 我也知道 javascript 本身没有任何内置函数可以像在 java 中那样返回 x 和 y,例如……有没有办法用 JQuery 或 php 来做到这一点? (如果可能的话,避免那些,javascript 会是最好的)。 谢谢!
像这样。
function printMousePos(event) { document.body.textContent = "clientX: " + event.clientX + " - clientY: " + event.clientY; } document.addEventListener("click", printMousePos);
MouseEvent.clientX只读
鼠标指针在本地(DOM 内容)坐标中的 X 坐标。MouseEvent.clientY只读
鼠标指针在本地(DOM 内容)坐标中的 Y 坐标。
听起来您的printMousePos
函数应该:
目前,它这样做:
看到问题了吗? 你的变量永远不会被设置,因为一旦你将你的函数添加到“mousemove”事件中,你就会打印它们。
看起来您可能根本不需要那个 mousemove 事件; 我会尝试这样的事情:
function printMousePos(e) {
var cursorX = e.pageX;
var cursorY = e.pageY;
document.getElementById('test').innerHTML = "x: " + cursorX + ", y: " + cursorY;
}
简单的解决方案是这样的:
游戏.js:
document.addEventListener('click', printMousePos, true);
function printMousePos(e){
cursorX = e.pageX;
cursorY= e.pageY;
$( "#test" ).text( "pageX: " + cursorX +",pageY: " + cursorY );
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.