我遇到以下問題:在更改選項卡後,我的瀏覽器(Chrome)未響應。見fiddle here。我沒有使用其他瀏覽器進行測試,也沒有必要這麼做,因爲Chrome是我的工作目標。Ace編輯器+ jQueryUI選項卡殺死我的瀏覽器
我的目標是將編輯器放在第二個選項卡中,而不是第一個。這是我使用的代碼:
HTML:
<div id="tabs">
<ul>
<li><a href="#tab1">Tab without</a></li>
<li><a href="#tab2">Tab with</a></li>
</ul>
<div id="tab1">
</div>
<div id="tab2">
<textarea id="ta"></textarea>
</div>
<div>
的JavaScript:
$(function(){
$("#tabs").tabs({
activate: function(event,ui){
if (ui.newPanel.attr("id") == "tab2") {
setTimeout(function(){
var editor = ace.edit("ta");
editor.setTheme("ace/theme/twilight");
editor.session.setMode("ace/mode/xml");
},10);
}
}
});
});
它失敗,該行:var editor = ace.edit("ta");
後,我切換標籤到第二個,瀏覽器被「凍結」,並在一分鐘內將RAM充滿2.5 GB並且不呈現任何內容。然後,即使操作系統非常慢,直到我打破進程。
在我的實現中,我只在第一次運行時執行此激活;這裏我已經排除了這個來簡化代碼。
謝謝你的任何幫助。
嘗試使用div而不是textearea,即使在ACE網站上,你可以看到他們使用div。 – Sergey92zp
@ Sergey92zp,謝謝!它解決了這個問題。請把它作爲答案,我會接受它。 – smnbbrv