如何通过指定触发事件的坐标(如onmousedown,onmouseup,onclick等等)来获取html控件的id.坐标可以得到
e.clientX,e.clientY其中e是事件对象.
我们的想法是获得一个控件的id,在该控件上完成click事件而不在该控件的定义中有任何onClick事件.
这将省去为多个控件指定onClick事件的需要.
我不相信这是可能的,但幸运的是(如果我理解你的要求正确),你不需要:
如果要获取用户单击的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); }
然后单击问题文本的任意位置以获取具有正确HTML元素的警报:-).