递归太多了

ice*_*eea 0 javascript

任何人都可以告诉我循环来自哪里?

JS:

if (zahl > 1) {
    document.getElementById('makroclickm2').innerHTML = data_split[zahlm2];
    document.getElementById('makroclickm2').onclick = getwords(zahlm2++);
}
else {
    document.getElementById('makroclickm2').innerHTML = "";
    document.getElementById('makroclickm2').onclick = "";
}

if (zahl > 0) {
    document.getElementById('makroclickm1').innerHTML = data_split[zahlm1];
    document.getElementById('makroclickm1').onclick = getwords(zahlm1++);
}
else {
    document.getElementById('makroclickm1').innerHTML = "";
    document.getElementById('makroclickm1').onclick = "";
}

document.getElementById('makroclick').innerHTML = data_split[zahl];
document.getElementById('makroclick').onclick = getwords(zahl++);

document.getElementById('makroclickp1').innerHTML = data_split[zahlp1];
document.getElementById('makroclickp1').onclick = getwords(zahlp1++);
if (typeof(data_split[zahlp1]) == "undefined") {
    document.getElementById('makroclickp1').innerHTML = "";
    document.getElementById('makroclickp1').onclick = "";
}

document.getElementById('makroclickp2').innerHTML = data_split[zahlp2];
document.getElementById('makroclickp2').onclick = getwords(zahlp2++);
if (typeof(data_split[zahlp2]) == "undefined") {
    document.getElementById('makroclickp2').innerHTML = "";
    document.getElementById('makroclickp2').onclick = "";
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<div id="makroclickm2" onclick="" class="makroclick"></div>
<div id="makroclickm1" onclick="" class="makroclick"></div>
<div id="makroclick" onclick="getwords(0);" class="makroclick_center"></div>
<div id="makroclickp1" onclick="getwords(1);" class="makroclick"></div>
<div id="makroclickp2" onclick="getwords(2);" class="makroclick"></div>
Run Code Online (Sandbox Code Playgroud)

(不完整代码)该函数在onload上调用一次.

Thx提前!

Aln*_*tak 8

在这样的行:

document.getElementById('makroclickm2').onclick = getwords(zahlm2++);
Run Code Online (Sandbox Code Playgroud)

你分配onclick处理的结果getwords(zahlm2++),还没到那个函数本身.

如果,正如我怀疑的那样,上面的代码实际上是getwords函数,这意味着它正在调用自己(递归).

相反,写:

document.getElementById('makroclickm2').onclick = function() {
   getwords(zahlm2++);
}
Run Code Online (Sandbox Code Playgroud)