gpt4 book ai didi

javascript - 无法使用 addEventListener 注册 onclick

转载 作者:行者123 更新时间:2023-12-03 16:31:58 25 4
gpt4 key购买 nike

我只是想为 div 注册 onclick,但它不起作用。相反,alert 的调用在页面加载时触发。

function print()
{
alert(' div clicked..');
}


var divElement = document.getElementById("content");
divElement.addEventListener("onclick", print());

这是一个 jsFiddle .

最佳答案

问题是您不需要 on 前缀。并且 print 应该有空括号。空括号将导致函数执行,其返回值作为函数传递给调用 - 这不是您想要的。

试试这个:

var divElement = document.getElementById("content");
divElement.addEventListener("click", print);

这是一个 updated working jsFiddle .


编辑:根据 Ian's comment下面是一个辅助函数,用于向后兼容特定版本的 Internet Explorer。

function AttachEventListener(element, event, handler) {
if (element.addEventListener) {
element.addEventListener(event, handler, false);
} else if (element.attachEvent) {
element.attachEvent('on' + event, handler);
} else {
alert('Invalid element specified for AttachEventListener');
}
}

您可以使用 AttachEventListener(divElement, 'click', print) 而不是使用 divElement.addEventListener("click", print)

使用辅助函数的主要原因是因为旧版本的 Internet Explorer 没有addEventListener,而 在使用 attachEvent 时需要 on 前缀。此辅助函数将为您省去在每个事件绑定(bind)上自行进行功能检查的麻烦。

关于javascript - 无法使用 addEventListener 注册 onclick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16110016/

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