javascript - function() 与 javascript onClick 中的函数问题

标签 javascript html

我通过 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/

相关文章:

javascript - 根据包含函数名称的字符串调用函数

javascript - 如何处理这个指向最上面的封闭 fn ?

php - 页面加载默认值未显示在 jQuery 中?

javascript - 触发点击事件到项目列表

javascript - 如何添加退房日期?

javascript - 找不到正则表达式的错误

javascript - 更改视口(viewport)上的元素类型

javascript - 从超链接中删除 tabindex 属性

html - 父容器的高度没有为 child 拉伸(stretch)?

html - 悬停时的文本下划线会更改填充