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

标签 javascript dom-events

如何仅通过指定触发事件的坐标(如 onmousedownonmouseuponclick 来获取 html 控件的 id , ETC..)。坐标可以通过以下方式获得:

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

想法是获取完成点击事件的控件的 ID,而该控件的定义中没有任何 onClick 事件。

这将免除为多个控件指定 onClick 事件的需要。

最佳答案

我不认为这是可能的,但幸运的是(如果我正确理解您的要求)您不需要:

如果您想获取用户点击的 HTML 元素,而不在每个元素上指定点击事件处理程序,只需在顶级元素(包含所有其他有趣元素的元素 - 甚至可能是“document”)上指定点击处理程序"),然后查看 MouseEvent 的 target 属性 - 它将指定最初接收点击的 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 元素的警报 :-)。

关于javascript - 通过指定坐标检索 html 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/590119/

相关文章:

javascript - Javascript 中的运行顺序更改

javascript - 仅使用一个选项重置 Angular JS 中的选择框

尽管有多个事件监听器,Javascript 函数仅调用一次

javascript - Vue.js axios 从本地存储(localforage)获取值返回promise对象而不是值

javascript - 检查多个 div 是否同时可见

javascript - js-grid 输出高度限制问题 - 无法控制输出溢出

javascript - JavaScript 中有没有办法监听控制台事件?

javascript - Mobile Safari 中的 Google Maps v3 InfoBox 事件传播

JavaScript 显示和隐藏技巧

javascript - 我正在使用 jquery next 和 cosest 选项来仅选择一个元素,但这将类应用于每个元素