递归太多了(Too much recursion)
任何人都可以告诉我循环来自哪里?
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 = ""; }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>(不完整代码)该函数在onload上调用一次。
Thx提前!
can anyone tell me where the loop comes from?
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 = ""; }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>(Not complete Code) The function is called once onload.
Thx in advance!
最满意答案
在这样的行:
document.getElementById('makroclickm2').onclick = getwords(zahlm2++);您将onclick处理程序分配给getwords(zahlm2++)的结果 ,而不是该函数本身。
如果,正如我怀疑的那样,上面的代码实际上是getwords函数,这意味着它正在调用自身(递归)。
相反,写:
document.getElementById('makroclickm2').onclick = function() { getwords(zahlm2++); }In the lines like this:
document.getElementById('makroclickm2').onclick = getwords(zahlm2++);You're assigning the onclick handler to the result of getwords(zahlm2++), not to that function itself.
If, as I suspect, the code above actually is the getwords function, that means it's calling itself (recursively).
Instead, write:
document.getElementById('makroclickm2').onclick = function() { getwords(zahlm2++); }更多推荐
发布评论