鍍金池/ 問答/HTML/ 一個遞歸調用,div能動,但是報錯原因是什么?

一個遞歸調用,div能動,但是報錯原因是什么?

$(function(){
            $('input').click(function fn(){
                $('#box').animate({
                    left:'+=20px'
                })
                fn();
            })
        })

圖片描述

回答
編輯回答
安淺陌
  1. '+=20px'寫法沒問題,并且這是jQ Animate常見的寫法,velocityJS也是這個語法的(繼承自jQ)
  2. 試試這么寫看行不行:

    $(function(){
        function fn(){
            $('#test').animate({
                left: '+=20px'
            }, 'fast', 'linear', fn);
        }
        $('button').click(fn);
    })

    主要就是改成用animate自帶的回調做遞歸。

  3. 如果需求復雜的話,可以考慮上個獨立的動畫庫,比如velocityJS。
2017年12月23日 05:41
編輯回答
誮惜顏

兩位大佬都沒說錯,棧溢出,你的fn執(zhí)行了無限次,內存受不了,直接中斷你的操作,語法也是錯的,字符串中寫運算,始終是不變的字符串。

2018年6月6日 20:49
編輯回答
糖果果

你這個無限遞歸啊,總要有個退出遞歸的時候吧

2018年7月7日 06:42
編輯回答
擱淺

超過了調用堆棧最大值了。
你的left:"+20px"是不是寫錯了?
你是否確認一下加了'+'是不是寫錯了,因為會導致無限循環(huán)。

2017年8月11日 17:01