javascript - 通过指定坐标检索html控件

kk.*_*kk. 3 javascript javascript-events

如何通过指定触发事件的坐标(如onmousedown,onmouseup,onclick等等)来获取html控件的id.坐标可以得到

e.clientX,e.clientY其中e是事件对象.

我们的想法是获得一个控件的id,在该控件上完成click事件而不在该控件的定义中有任何onClick事件.

这将省去为多个控件指定onClick事件的需要.

Gus*_*uss 5

我不相信这是可能的,但幸运的是(如果我理解你的要求正确),你不需要:

如果要获取用户单击的HTML元素,而不在每个元素上指定click事件处理程序,只需在顶级元素上指定一个单击处理程序(一个包含所有其他有趣元素 - 甚至可能是"document"),然后查看MouseEvent的target属性 - 它将指定最初接收到click的HTML元素,而不是指定onclick事件处理程序的元素(这可以通过使用"this"关键字来获得).

如果您有firebug,请在StackOverflow上的firebug控制台中尝试这个:

document.getElementById('question').onclick = function(e) { 
  var target = window.event?window.event.srcElement:e.target; 
  alert("Got click: " + target); 
}
Run Code Online (Sandbox Code Playgroud)

然后单击问题文本的任意位置以获取具有正确HTML元素的警报:-).