Javascript 使用事件传播在div选择和父选择之后将div子级从一个父级移动到另一个父级
我正在建造河内的游戏塔,除了如何按以下顺序将一个div(我的磁盘)从一个父节点(棒)移动到另一个父节点之外,我已经弄清楚了一切:单击磁盘(div/子节点)进行选择,然后单击要将磁盘移动到的棒节点(父节点) 为了解决这个问题,我尝试在一个事件处理程序中使用多个事件处理程序,并在div被移动到新的父节点后使用removeEventHandler。我也尝试过使用StopperPogation来防止冒泡,但这两种方法都不适用于我Javascript 使用事件传播在div选择和父选择之后将div子级从一个父级移动到另一个父级,javascript,Javascript,我正在建造河内的游戏塔,除了如何按以下顺序将一个div(我的磁盘)从一个父节点(棒)移动到另一个父节点之外,我已经弄清楚了一切:单击磁盘(div/子节点)进行选择,然后单击要将磁盘移动到的棒节点(父节点) 为了解决这个问题,我尝试在一个事件处理程序中使用多个事件处理程序,并在div被移动到新的父节点后使用removeEventHandler。我也尝试过使用StopperPogation来防止冒泡,但这两种方法都不适用于我 // Moving the blocks from one contain
// Moving the blocks from one container to the other
// use 'prepend' in order to insert new disk at the top of the parent node as the first child
function move() {
for (let i = 0; i < disks.length; i++)
disks[i].addEventListener('click', function (evt) {
// activeDisk = evt.target.dataset.value
// give red border on block when selected
disks[i].style.border = 'Red 2px Solid';
console.log(disks[i])
// after disk is selected, click on desired stack to move disk to
stackA.addEventListener('click', function (evt) {
stackA.prepend(disks[i])
win(evt)
})
stackA.removeEventListener('click', function(){
return console.log(stopped)
})
stackB.addEventListener('click', function (evt) {
stackB.prepend(disks[i])
win(evt)
})
stackB.removeEventListener('click', function(){
return console.log(stopped)
})
stackC.addEventListener('click', function (evt) {
stackC.prepend(disks[i])
win(evt)
})
stackC.removeEventListener('click', function(){
return console.log(stopped)
})
check(evt)
})
}
//将块从一个容器移动到另一个容器
//使用“prepend”在父节点顶部插入新磁盘作为第一个子节点
函数move(){
for(设i=0;i
我希望我的磁盘移动到容器中,然后取消选择,以便单独移动它们。我可以移动它们,但当我选择它们,然后尝试取消选择它们以单独移动另一个磁盘时,它不起作用。您不能像这样移除EventListener,它将不起作用。 您必须创建一个侦听器函数,并在以后添加或删除该函数
function exampleFunction(){ // your logic here }
stackA.addEventListener("click", exampleFunction);
stackA.removeEventListener("click", exampleFunction);