日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Uncaught RangeError: Maximum call stack size exceeded

發布時間:2023/12/13 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 Uncaught RangeError: Maximum call stack size exceeded 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

控制臺報這個錯誤可能是由于多種原因,但大多是因為js編寫有錯誤。

這個錯誤的字面意思是:

代碼運行時發生了異常,但是沒有將其捕獲(Uncaught)
RangeError是一個特定的異常類,面向對象中都有捕獲異常的機制,當然也有一系列的類是異常類,用來定義各種異常
Maximum call stack size exceeded 是說,當前程序可能發生了比較頻繁的遞歸操作,而系統可供遞歸操作調用的內存空間是有限制的,當前操作超出了這個限制,因此發生了異常

當前的案例需求是這樣:

一個注冊表單,要實現:

當鼠標點擊文本框時,框內的文字上移,文本框獲取焦點,可供用戶輸入
當點擊文本框以外時,文字位置下移恢復,文本框失去焦點

HTML代碼是這樣:

<div class="form_group">
    <input type="text" name="mobile" autocomplete="off" id="register_mobile" class="phone_input">
    <div class="input_tip">手機號</div>
    <div id="register-mobile-err" class="error_tip">手機號不能為空</div>
</div>

javascript代碼是這樣:(頁面提前導入了jquery-1.12.4.min.js)

$('.form_group').on('click focusin',function(){
    $(this).children('.input_tip').animate({'top':-2, 'font-size':10}, 'fast').siblings('input').focus().parent().addClass('hotline');
});

這樣出來的效果是這樣:

這段js代碼的意思大體是這樣:

$('.form_group')獲取了classform_group的div對象,然后編寫了它的點擊方法
$(this).children('.input_tip')獲取了classinput_tip的div對象
.animate({'top':-2, 'font-size':10}, 'fast')input_tip添加了上移的動畫
.siblings意為兄弟姐妹,即為所有與input_tip平級的元素,其中包括input標簽,.siblings('input').focus,就是文本框獲取了焦點,光標在里面閃啊閃
最后.parent().addClass('hotline')是獲取了文本框的,也就是divform_group。然后給它添加了css屬性hotline,也就是文本框下面的那一道藍色的線

現在的效果不僅會報錯,而且是不符合預期的,鼠標點擊文本框外的位置,文字位置不會恢復

修改后的js是這樣:

$('.form_group').children('.input_tip').on('click focusin',function(){
    $(this).animate({'top':-2, 'font-size':10}, 'fast').siblings('input').focus().parent().addClass('hotline');
});

出來的效果是這樣:

現在 Chrome 控制臺不報錯了

但是仔細測試發現,這樣還是有輕微的bug:

如果點擊字,則效果正常
如果點擊文本框中字以外的地方,則發現字不會上移,輸入內容后會與提示文字重合
當點擊一個文本框時,按tab鍵,焦點會到下一個文本框,但是文字不會上移

所以實質上是又發生了新的問題^_^

總結

以上是生活随笔為你收集整理的Uncaught RangeError: Maximum call stack size exceeded的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。