Ответ 1
Как это.
function printMousePos(event) {
document.body.textContent =
"clientX: " + event.clientX +
" - clientY: " + event.clientY;
}
document.addEventListener("click", printMousePos);
У меня есть маленький тег 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>
Это функция printMousePos в отдельном файле .js:
function printMousePos() {
var cursorX;
var cursorY;
document.onmousemove = function(e){
cursorX = e.pageX;
cursorY = e.pageY;
}
document.getElementById('test').innerHTML = "x: " + cursorX + ", y: " + cursorY;
}
Да, функция действительно работает (она знает, когда вы нажимаете ее и все), но возвращает undefined для x и y, поэтому я предполагаю, что код get x и y в функции неверен. Есть идеи? Я также знаю, что внутри javascript нет встроенных функций, чтобы возвращать x и y, как в java, ex.. был бы способ сделать это с помощью JQuery или php? (избегайте, если это возможно, хотя javascript будет лучше). Спасибо!
Как это.
function printMousePos(event) {
document.body.textContent =
"clientX: " + event.clientX +
" - clientY: " + event.clientY;
}
document.addEventListener("click", printMousePos);
Похоже, ваша функция 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 );
}