我有一个小div标签,当我点击它(onClick
event)时,它将运行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的未定义,所以我假设函数中的get x和y代码是不正确的。有任何想法吗?我也知道javascript本身没有任何内置函数可以像java一样返回x和y,ex ..有没有办法用JQuery或php做到这一点? (尽管可能,尽量避免那些,javascript会是最好的)。谢谢!
答案 0 :(得分:65)
喜欢这个。
function printMousePos(event) {
document.body.textContent =
"clientX: " + event.clientX +
" - clientY: " + event.clientY;
}
document.addEventListener("click", printMousePos);
&#13;
<强> MouseEvent - MDN 强>
MouseEvent.clientX 只读
鼠标指针在本地(DOM内容)坐标中的X坐标。MouseEvent.clientY 只读
鼠标指针的Y坐标在本地(DOM内容)坐标中。
答案 1 :(得分:5)
听起来你的printMousePos
功能应该是:
目前,它是这样做的:
看到问题?您的变量永远不会被设置,因为只要您将函数添加到“mousemove”事件中,就可以打印它们。
好像你可能根本不需要那个mousemove事件;我会尝试这样的事情:
function printMousePos(e) {
var cursorX = e.pageX;
var cursorY = e.pageY;
document.getElementById('test').innerHTML = "x: " + cursorX + ", y: " + cursorY;
}
答案 2 :(得分:0)
简单的解决方案是:
game.js:
document.addEventListener('click', printMousePos, true);
function printMousePos(e){
cursorX = e.pageX;
cursorY= e.pageY;
$( "#test" ).text( "pageX: " + cursorX +",pageY: " + cursorY );
}