0

我正在尝试为每个节点调用一个函数。当 notch 数组在 notchlick 函数中定义时,它不会创建数组。当我将它放在函数之外时,数组只包括原始节点而不是克隆。由于该数组是一个 htmlcollection,我假设它是一个实时列表。

let notch;

poppin = function () {

ole.classList.replace ('okay', 'olay');

ulay.classList.replace ('unlay', 'ulay');

bup[0].classList.replace ('bup', 'cup');

pegs.classList.replace ('pegs', 'legs');

if (!ran) {

    notches();
    switches();
}

count = 0;
}

let notches = function () {

for (a = 0; a < tn; a++) {

    let svgc = svg.cloneNode(true);

    pegs.append(svgc);
}   

ran = true;

}

notch = Array.prototype.slice.call(document.getElementsByTagName('svg'));

notchlick = function (k) {

notch[k].onclick = function () {

    spright();
    spleft();   
    bup[count].classList.replace ('cup' , 'bup');

    count = k;
    bup[count].classList.replace ('bup' , 'cup')        
}
}

switches = function () {

for (k = 0; k < notch.length; k++) {

    notchlick(k);
}
}

克隆节点的行为与原始节点不同。当数组在函数外部声明时,这是问题的根源吗?还考虑到我对闭包的理解,我错过了为什么嵌套在函数中时数组不注册。

4

0 回答 0