Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 为什么这个循环会导致堆栈溢出?_Jquery - Fatal编程技术网

Jquery 为什么这个循环会导致堆栈溢出?

Jquery 为什么这个循环会导致堆栈溢出?,jquery,Jquery,我决定搞乱jquery,制作一个简单的基于轴测图的游戏。它渲染一些贴图,然后堆栈出现问题。(超过最大调用堆栈大小) 我现在只使用背景色的瓷砖 调用$('.map_-piece').clone()克隆迄今为止已创建的所有片段。这会导致每次循环运行时克隆元素的数量呈指数级增长。要执行您打算执行的操作,请使用first()将克隆限制为仅一个元素 在每个迭代k中,克隆2^k个项目 与克隆元素不同,每次创建新元素可能更容易: $('<div class="map_piece">')

我决定搞乱jquery,制作一个简单的基于轴测图的游戏。它渲染一些贴图,然后堆栈出现问题。(超过最大调用堆栈大小) 我现在只使用背景色的瓷砖

调用
$('.map_-piece').clone()
克隆迄今为止已创建的所有片段。这会导致每次循环运行时克隆元素的数量呈指数级增长。要执行您打算执行的操作,请使用
first()
将克隆限制为仅一个元素


在每个迭代k中,克隆2^k个项目

与克隆元素不同,每次创建新元素可能更容易:

$('<div class="map_piece">')
    .appendTo('body')
    .css({'top' : x + 'px', 'left' : y + 'px','display' : 'block','background' : background});
$(“”)
.appendTo('正文')
.css({'top':x+'px','left':y+'px','display':'block','background':background});

非常感谢您的更正和原因。我不太熟悉克隆,我没有意识到我正在克隆每个实例。两个答案都很有帮助,但由于你先回答了两分钟。。。你会得到复选标记的!:)投票!谢谢你带我参观first()!我看到了这两种方法,并将努力记住它们。
$('.map_piece').first().clone().appendTo('body').css({'top' : x + 'px', 'left' : y + 'px','display' : 'block','background' : background});
$('<div class="map_piece">')
    .appendTo('body')
    .css({'top' : x + 'px', 'left' : y + 'px','display' : 'block','background' : background});