gpt4 book ai didi

Javascript 附加事件到类名

转载 作者:可可西里 更新时间:2023-11-01 02:34:22 25 4
gpt4 key购买 nike

如果我有 10 个项目,类名 keyword:

<div class="keyword"></div>

如何在此元素上附加事件,例如 click

我尝试了以下方法,但没有成功:(没有出现警报)

document.getElementsByClassName('.keyword').onclick = function()
{
alert(true);
Search.addKey(this.getElementsByClassName('name')[0].innerHTML);
}

要求:

  • 没有onclick属性
  • 没有 jQuery 或任何其他库

注意:元素不会在页面加载时生成。例如,每次您单击一个按钮时,它们的数量可能会有所不同。

我需要一种方法来附加到“ future ”中具有“关键字”类的所有标签。

最佳答案

您应该委托(delegate)该事件。试试这个:

if (document.body.addEventListener)
{
document.body.addEventListener('click',yourHandler,false);
}
else
{
document.body.attachEvent('onclick',yourHandler);//for IE
}

function yourHandler(e)
{
e = e || window.event;
var target = e.target || e.srcElement;
if (target.className.match(/keyword/))
{
//an element with the keyword Class was clicked
}
}

您可以在 quirksmode.com 上阅读有关事件委托(delegate)的更多信息。 AFAIK,这是实现您想要实现的目标的最佳方式。这就是所有主要库(原型(prototype)、jQuery 等)在幕后的工作方式

更新:

Here's the fiddle , 它包含更多解释。一个有趣的引用是 this页。它帮助我理解了 IE 和 W3C 事件的不同之处,而且至关重要的是,它帮助我理解了事件委托(delegate)的值(value)和无数好处

关于Javascript 附加事件到类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11273760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com