クリックすると(onClick
イベント)、printMousePos()
関数を実行する小さなdivタグがあります。これは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コードが正しくないと仮定しています。何か案は?また、Javaのようにxとyを返すJavaScript自体には組み込み関数がないこともわかっています。たとえば、JQueryやphpなどでそれを行う方法はありますか。 (ただし、可能であればそれらを避けてください。javascriptが最適です)。ありがとう!
このような。
function printMousePos(event) {
document.body.textContent =
"clientX: " + event.clientX +
" - clientY: " + event.clientY;
}
document.addEventListener("click", printMousePos);
MouseEvent.clientX Read only
ローカル(DOMコンテンツ)座標でのマウスポインターのX座標。MouseEvent.clientY Read only
ローカル(DOMコンテンツ)座標でのマウスポインターのY座標。
printMousePos
関数は次のように聞こえます:
現在、これはこれを行います:
問題が発生しましたか?変数が「mousemove」イベントに関数を追加するとすぐに印刷されるため、変数が設定されることはありません。
おそらく、そのmousemoveイベントはまったく必要ないようです。私はこのようなものを試してみます:
function printMousePos(e) {
var cursorX = e.pageX;
var cursorY = e.pageY;
document.getElementById('test').innerHTML = "x: " + cursorX + ", y: " + cursorY;
}
簡単な解決策は次のとおりです。
game.js:
document.addEventListener('click', printMousePos, true);
function printMousePos(e){
cursorX = e.pageX;
cursorY= e.pageY;
$( "#test" ).text( "pageX: " + cursorX +",pageY: " + cursorY );
}