试着用我当前非常有限的JavaScript知识来获得一些乐趣。
为什么这不起作用?我做错了什么?
HTML
<body>
<input type="button" value="Click me" id="button" />
</body>
的Javascript
var x = e.clientX;
var y = e.clientY;
var p = document.getElementById("button");
function mousedown() {
if (p.mousedown) {
alert(x, y);
}
}
答案 0 :(得分:8)
mousedown
函数之外的事件中获取值(即在事件存在之前)mousedown
函数指定为事件处理程序mousedown
函数mousedown
函数中测试mousedown
属性,无明显原因alert
所以要解决它:
function mousedownHandler(e) {
var x = e.clientX;
var y = e.clientY;
alert(x + ", " + y);
}
var p = document.getElementById("button");
p.addEventListener('mousedown', mousedownHandler);
答案 1 :(得分:1)
您必须将click
或mousedown
事件附加到元素。在函数内部,您可以获取事件并从中检索clientX
和clientY
。
<强>的JavaScript 强>
var p = document.getElementById("button");
p.onclick = function mousedown(e) {
var x = e.clientX;
var y = e.clientY;
alert(x + ' ' + y);
}
<强>演示强>
答案 2 :(得分:0)
e
不是全局变量。通常e
是与事件处理程序关联的事件:
function mousedownHandler(e)
{
//manage the event
console.log(e.clientX, e.clientY);
}
事件处理程序应绑定到相应的事件:
var p = document.getElementById("button");
p.onmousedown = mousedownHandler;
Here是jsFiddle中示例的运行分支。
答案 3 :(得分:0)
首先,您需要将一个事件附加到元素。然后你需要传递'e'或事件。然后你可以阅读它的属性。
var p = document.getElementById("button");
p.addEventListener('mousedown', mousedown);
function mousedown(e) {
var x = e.clientX;
var y = e.clientY;
alert(x, y);
}
答案 4 :(得分:-1)
你没有调用该函数,你必须使用这个
<body>
<input type="button" value="Click me" id="button" onClick="mousedown()" />
</body>
答案 5 :(得分:-1)
<!DOCTYPE html>
<html>
<head>
<title>HTML</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript">
function mousedown(e) {
var x = e.clientX;
var y = e.clientY;
alert(x + "\n" + y);
}
</script>
</head>
<body>
<table>
<input type="button" value="Click me" id="button" onmousedown="mousedown(event);" />
<!-- alternatively -->
<button id="button2" onmousedown="mousedown(event)">Click me</button>
</table>
</body>
</html>