2016-06-21 2 views
1

MathJaxとの関係から、Contenttoolsの編集可能領域からコンテンツを動的に消去し、編集可能領域に新しい要素を追加する必要があります。地域に要素を追加すると、Contenttoolsで編集可能と見なされません。私は、AJAXコールバックで、次のjQueryコードを使用しています:Contenttools - jQueryを使用したデータの追加

$(".contentArea").empty().append($(response.data.content)) 

内容は、私がそれをしたいと表示されますが、編集できません。誰でも助けてくれますか?私はまた、新しいコンテンツが読み込まれた後にeditor.init(...)を使ってエディタを再初期化しようとしましたが、新しいコンテンツを登録していないようです。どんな助けでも大歓迎です!

+0

カップル:あなたは地域の内容を置き換えるしようとすると、CTエディタがアクティブです(例えば、あなたが編集していますか)?挿入する前に、またはエディタを再度初期化しようとする前に、MathJaxによってフォーマットされたコンテンツを挿入していますか? –

+0

@AnthonyBlackshaw MathJaxがレンダリングされると、TeXがMathMLに変換されます。私はMathMLマークアップを編集するのではなく、TeX(要素のinnerHTML内の$ x^2 + 7 $のように)を編集したいと思います。 私は次のことをしようとしています。エディタが起動したら、MathMLマークアップを削除してTeXマークアップに戻すために、ページコンテンツをページにリロードしてから、そのコンテンツの編集を開始します。したがって、私はエディタが起動するときにコンテンツを置き換えようとしています(これをeditor._ignitionの 'start'イベントにバインドしています)。私は助けに感謝します。 –

+0

こんにちは@グランサンダーズ - 私はあなたが新しいので参照してください。回答が問題を解決したと感じる場合は、緑色のチェックマークをクリックして「受け入れ済み」とマークしてください。これはまだ答えがない年上のSOに焦点を当てるのに役立ちます。 –

答えて

1

OKこの方法を試して、あなたはそれがライブだ編集可能領域内でコンテンツを交換するときエディタとページが同期しなくなります。

厳密なシナリオではこれを簡単に試すことはできませんが、次のコードでは、どのように進化し、どのような改訂が必要なのかを教えていただければ、私はそれをうれしく更新します。簡単な質問の

var editor = ContentTools.EditorApp.get(); 

// Add a flag to the editor that indicates when the tex version of the content 
// has loaded. 
editor.texLoaded = false; 

// Capture the start event against the editor, the first time around we load 
// the tex version of our content, the second time around we intialize the 
// editor as normal. 
editor.addEventListener('start', function(ev) { 

    // Has the Tex content been loaded, if so do nothing we're ready to start 
    // editing. 
    if (this.texLoaded) { 
     return; 
    } 

    // If the Tex content hasn't been loaded then cancel the start event 
    ev.preventDefault(); 

    // Load the Tex content 
    $.ajax({ 
     url: "/get-tex?..." 
    }).done(function (response) { 
     // From the response update the contents of the editable region 
     $('.contentArea')[0].innerHTML = response.data.content; 

     // Flag that the tex version of the content is now in place 
     this.texLoaded = true; 

     // Start the editor 
     editor.start(); 
    }); 
}); 
+0

これは機能します!私はちょうど 'stop'と 'save'イベントリスナでthis.texLoadedの値を切り替える必要があったので、その後の編集でも同じ機能が得られました。ありがとう! –

0

コンテンツがロードされていますが、編集できません。 何が起こっていることは、あなたが現在のMathMLを置き換えるために、コンテンツのごテックスのバージョンを要求したときにエディタが起動していることであるように聞こえる

$(".contentArea").empty().append($(response.data.content)); 
//Reset the editable function 
関連する問題