javascript - 即使事件未执行,事件监听器也会立即触发

标签 javascript

我想知道为什么我在html中执行这个

<!DOCTYPE html>
<html>

<p class="click">
	click here
</p>

<script>
	p=document.querySelector(".click");
	p.addEventListener("onclick",alert("click sucess"))
</script>

</html>

在我打开浏览器后,警报会立即出现,但不会在点击时出现。以及如何在我单击它时让它启动。

最佳答案

addEventListener 的第二个参数需要是一个函数

表达式 alert("click sucess")立即调用 alert 函数(向其传递参数)并计算为 该函数的返回值

相当于:

var a_value = alert("click sucess");
p.addEventListener("onclick", a_value);

您需要创建一个使用所需参数调用警报的新函数。

此外,您需要获得正确的事件名称。它是点击,而不是点击

var a_value = alert.bind(window, "click sucess");
p.addEventListener("click", a_value);

关于javascript - 即使事件未执行,事件监听器也会立即触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50159251/

相关文章:

javascript - 运行异步函数 N 次,其中 N 取决于调用返回的内容

javascript - 查找具有相似属性且彼此相邻的对象

javascript - 当 Webix 列表中没有项目时如何将其呈现为空白

javascript - JWplayer 6 和图像叠加视频的奇怪问题

javascript - 在类 Component 的函数中调用 componentDidMount

javascript - sessionStorage 在页面之间不持久

javascript - Bootstrap轮播溢出:Hidden Breaks Dropup Button

javascript - jquery 和 ajax 工具提示不适用于实时加载的内容

javascript - 一款 watch 功能内含两种型号

javascript - jQuery 滚动到按钮单击的部分