javascript - 在窗口级别监听某些元素上的事件 - Javascript,无库

标签 javascript event-delegation

我想监听 <p> 上的事件窗口或文档级别的元素,因为此类元素太多,无法为每个元素附加 onclick 事件处理程序。

这就是我所拥有的:

window.onload=function()
{
    window.addEventListener('click',onClick,false);
}
function onClick(event)
{
    alert(event.target.nodeName.toString());
}

我需要关于上面代码的建议,这样好吗? 另外,如何检查单击的元素是否为 <p>检查以外的元素 nodeName ? 例如,如果 <p>元素包含 <b>元素并被单击,nodeType 将是 b不是p .

谢谢。

最佳答案

我觉得不错,你可以这样检查

var e = event.target
while (e.tagName != 'P')
   if (!(e = e.parentNode))
       return
alert(e)

关于javascript - 在窗口级别监听某些元素上的事件 - Javascript,无库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7375100/

相关文章:

javascript - 使用 HTML5 数据属性的 MooTools 事件委托(delegate)

javascript - 将悬停意图添加到现有 Javascript 代码中

javascript - 如何衡量Jquery事件委托(delegate)带来的性能优势?

javascript - 我如何选择具有特定值的数组元素并执行函数javascript

javascript - 如何从按钮调用 Javascript 中的方法(使用此方法)?

javascript - 单击事件在 JavaScript 中不起作用

javascript - React 事件处理程序、委托(delegate)

javascript - 高端 JavaScript 应用程序和事件

javascript - 使用用户定义的属性创建新的 javascript 对象

javascript - 使用 JSON 提供测验答案的简洁方法