[英]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.