【问题标题】:function() vs function issue in javascript onClick [duplicate]javascript onClick中的函数()与函数问题[重复]
【发布时间】:2020-02-10 22:13:15
【问题描述】:

我通过 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 函数与 ()
Browser 首先执行我的函数然后创建图像元素,最后创建的图像元素不可点击。

如果有人知道这个问题,请告诉我为什么会发生这个问题?

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    当您执行img.onclick = createImgNote 时,它会将该函数分配给该事件侦听器。

    当您执行img.onclick = createImgNote() 时,它会调用该函数并将返回值分配给该侦听器。每当您使用 () 跟随函数时,您都在调用该函数。

    【讨论】:

      猜你喜欢
      • 2017-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-07
      • 1970-01-01
      • 2020-08-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多