gpt4 book ai didi

javascript - 为什么事件处理程序不适用于在 javascript 中的其他函数上创建的元素

转载 作者:行者123 更新时间:2023-11-30 17:59:31 25 4
gpt4 key购买 nike

这是我的代码,请问为什么 onclick 事件对作为输入的 ini 元素不起作用。

JavaScript:

window.onload = function() {
var img = document.getElementsByTagName('img');
var div = document.createElement("div");
img[0].onclick = function(event) {
document.body.appendChild(div);
var sion = document.getElementsByTagName('div');
var val = document.defaultView.getComputedStyle(sion[0], null);
var mouseX = event.clientX;
var mouseY = event.clientY;
document.styleSheets[0].cssRules[0].style.top = (mouseY - 20) + "px";
document.styleSheets[0].cssRules[0].style.left = (mouseX - 20) + "px";
var ini = document.createElement("input");
document.body.appendChild(ini);
var hoftag = document.styleSheets[0].cssRules[0].style.height;
var result = hoftag.replace("px", "");
result = parseInt(result);

document.styleSheets[0].cssRules[1].style.top = (event.clientY - 20 + result) + "px";
document.styleSheets[0].cssRules[1].style.left = (event.clientX - 40) + "px";
};
ini.onclick = function(event) {
alert("hi");
};
};

HTML:

<img src="jlin.jpg" id="image">

最佳答案

问题在于变量的范围。变量 ini 仅存在于 img[0].onclick = function(event) { 中。请引用《JS 忍者》一书中的这张精彩图片:

enter image description here

要修复您的代码,请尝试:

img[0].onclick = function(event){
...
var ini = document.createElement("input");
document.body.appendChild(ini);
ini.onclick = function(event){
alert("hi");
};
...
};

关于javascript - 为什么事件处理程序不适用于在 javascript 中的其他函数上创建的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17378657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com