我想知道为什么当我在html
中执行此操作时
<!DOCTYPE html>
<html>
<p class="click">
click here
</p>
<script>
p=document.querySelector(".click");
p.addEventListener("onclick",alert("click sucess"))
</script>
</html>
我打开浏览器后会立即显示警报,但不会点击。如何点击它时如何点火。
答案 0 :(得分:1)
那是因为您将可执行代码作为回调传递,而不是函数引用。只要JavaScript运行时到达该行,它就会执行您放置的代码。
.addEventListener()
需要引用在指定事件发生时调用的函数。因此,您需要将可执行代码包装在一个函数中(如下所示)或者只是通过已定义的名称引用函数。
此外,该活动为a,b,c New_Word,d,e
f,gNew_WordNew_WordNew_Words,h,i,j
,而非click
(该活动属性)。
onclick
&#13;
答案 1 :(得分:1)
addEventListener
的第二个参数需要是函数。
表达式alert("click sucess")
将立即调用alert
函数(传递参数)并评估为该函数的返回值。
相当于:
var a_value = alert("click sucess");
p.addEventListener("onclick", a_value);
您需要创建一个使用所需参数调用alert的新函数。
此外,您需要获取正确的名称。它是点击,而不是 onclick 。
var a_value = alert.bind(window, "click sucess");
p.addEventListener("click", a_value);