我通过 javaScript 在我们的页面上动态创建了一个图像元素。
我想为我新创建的图像元素设置 onClick 。
我遇到了一个问题,但我不知道为什么?,
我的原始代码:
<html>
<body>
<button type="button" onclick="createImgNote()">Get line height</button>
<script>
function createImgNote() {
var img = document.createElement('img');
img.src ='ic_notebook.png';
img.style.left="100px";
img.style.top="150px";
img.style.position = "absolute";
img.onclick = imgClick;
document.body.appendChild(img);
}
function imgClick()
{
alert("imgClick called");
}
</script>
</body>
</html>
当我使用img.onclick = createImgNote
时表示我的函数没有 ()
浏览器首先生成图像,然后每次用户单击图像时,Broswer 都会执行我的 onclick 函数。
但是当我使用img.onclick = createImgNote()
时意味着我的 onclick 函数与 ()
浏览器 首先执行我的函数,然后创建图像元素,最后创建的图像元素不可点击。
如果有人知道这个问题,请告诉我为什么会出现这个问题?
最佳答案
当您执行 img.onclick = createImgNote
时,它会将该函数分配给该事件监听器。
当您执行 img.onclick = createImgNote()
时,它会调用该函数并将返回值分配给该监听器。每当你在函数后面加上 () 时,你就是在调用该函数。
关于javascript - function() 与 javascript onClick 中的函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60152178/