gpt4 book ai didi

Javascript - 克隆元素不响应点击

转载 作者:行者123 更新时间:2023-11-30 19:57:14 25 4
gpt4 key购买 nike

我在克隆元素时遇到问题,该元素不响应 onclick。我想删除该元素和其他克隆元素的类“selected”。我仍然可以在原始元素上添加和删除该类,但不能在克隆的元素上添加和删除该类。当您按“”时,您将克隆选定的对象。它们又应该在鼠标点击时被选中和取消选中。

我知道那里有一些类似的问题,但他们都使用我不感兴趣的 jquery。

我对这里的整个代码感到困惑:http://jsfiddle.net/oveht2zr/

HTML:

<!doctype html>
<html>
<head>
<title>Sandbox</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="style/style.css">
</head>

<body id="content">
<h1>My Sandbox</h1>

<div id="box1" class="box">
</div>

<script src="js/main.js"></script>
</body>
</html>

受影响的 JS:

let myContent = document.querySelector('#content');
let box = document.querySelector('.box');

let z = 2;

function cloneSelected() {
let all = document.querySelectorAll('.selected');
let i;

for (i = 0; i < all.length; i++) {
let clone = all[i].cloneNode(true);
clone.style.top = Math.floor(Math.random() * browserHeight) + 'px';
clone.style.left = Math.floor(Math.random() * browserWidth) + 'px';
clone.setAttribute('id', 'box' + z);
clone.style.zIndex = z;
myContent.appendChild(clone);
z++;
}
}

document.addEventListener('keydown', function(event) {
let key = event.key;

switch(key) {
case 'e':
circle();
break;
case 'q':
resizeUp();
break;
case 'w':
resizeDown();
break;
case 'r':
changeColor();
break;
case 't':
cloneSelected();
break;
}

box.style.top = (browserHeight / 2) - (boxHeight / 2) + 'px';
box.style.left = (browserWidth / 2) - (boxWidth / 2) + 'px';
});

问候

最佳答案

在您的 cloneSelected 函数中,您应该为克隆订阅点击

function cloneSelected() {
let all = document.querySelectorAll('.selected');
let i;

for (i = 0; i < all.length; i++) {
let clone = all[i].cloneNode(true);
clone.style.top = Math.floor(Math.random() * browserHeight) + 'px';
clone.style.left = Math.floor(Math.random() * browserWidth) + 'px';
clone.setAttribute('id', 'box' + z);
clone.style.zIndex = z;
clone.addEventListener('click', function(event) {
if (clone.classList.contains('selected')) {
event.target.classList.remove('selected');
} else {
event.target.classList.add('selected');
}})
myContent.appendChild(clone);
z++;
}
}

关于Javascript - 克隆元素不响应点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53839453/

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