2014-03-12 74 views
1

我遇到以下問題:在更改選項卡後,我的瀏覽器(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並且不呈現任何內容。然後,即使操作系統非常慢,直到我打破進程。

在我的實現中,我只在第一次運行時執行此激活;這裏我已經排除了這個來簡化代碼。

謝謝你的任何幫助。

+1

嘗試使用div而不是textearea,即使在ACE網站上,你可以看到他們使用div。 – Sergey92zp

+0

@ Sergey92zp,謝謝!它解決了這個問題。請把它作爲答案,我會接受它。 – smnbbrv

回答

3

嘗試使用DIV,而不是textearea,甚至王牌網站,你可以看到,他們使用DIV