var box=document.getElementById("box");
var display=document.getElementById("display");/*to display clientX result*/
var x=box.clientX;
box.addEventListener("click", show);
function show(){
display.innerHTML=x;
}
我觉得好像有些简单的事我看不到
答案 0 :(得分:0)
属性是clientLeft
和clientTop
,而不是clientX
和clientY
。参见the Element interface。所以
var x=box.clientLeft;
// -------------^^^^
另外,根据您正在执行的操作,这可能是问题也可能不是问题
var x=box.clientX;
在运行时从clientX
获取box
的值,然后存储该值。 x
和box.clientX
之间没有持续的连接。因此,当点击发生在稍后并调用show
时,它将显示运行var x=box.clientX;
时更早的值。根据时间的不同,即使您将其设置为clientLeft
,也可能会得到0
而不是有效值(如果在页面的初始加载期间正在读取它,那么该页面可能尚未布置)。同样,根据您正在执行的操作,您可能需要等待并在发生点击时查找box.clientLeft
。例如:
var box = document.getElementById("box");
var display = document.getElementById("display");
box.addEventListener("click", show);
function show(){
display.innerHTML = box.clientLeft;
}
答案 1 :(得分:0)
如果要在框元素内部获取鼠标单击的x位置,则可以借助click-event提供的属性来实现这一点。
let box = document.getElementById("box");
let display = document.getElementById("display");
function showMouseX(event){
display.innerHTML = event.clientX;
}
box.addEventListener("click", showMouseX);