2012-04-30 4 views
7

Ich benutze Codemirror mit Textareas in einer Tabbed-Schnittstelle, wenn ich nicht in der Registerkarte, die Codemirror enthält und dann zu gehen, bekomme ich leere Leerzeichen ohne Zeilennummern oder den Cursor, wenn ich die Seite aktualisieren, es funktioniert Ich weiß, dass der Tabs-Inhalt mit display: none; ausgeblendet ist. Wie kann ich dieses Problem beheben?Wie wird Codemirror aktualisiert, wenn der Eltern-Div-Stil zum Anzeigeblock wird?

hier ist mein Code, (ich bin auch mit jquery):

var editor = CodeMirror.fromTextArea(document.getElementById($this.attr('id')), { 
     lineNumbers: true, 
     mode: text/html, 
     enterMode: "keep", 
     tabMode: "shift" 
    }); 

    $(editor.getScrollerElement()).width(300); 
    width = $(editor.getScrollerElement()).parent().width(); 
    $(editor.getScrollerElement()).width(width); 
    editor.refresh(); 

Dank im Voraus.

Antwort

11

Stellen Sie sicher, dass Sie auch refresh aufrufen, wenn Sie zu der Registerkarte wechseln, die den Editor enthält.

5

Platzieren Sie diesen Code unter

// Refresh CodeMirror 
$('.CodeMirror').each(function(i, el){ 
    el.CodeMirror.refresh(); 
}); 

es für mich gearbeitet, sicherzustellen, dass Sie es am oberen Rand der Seite platzieren. hoffe das hilft.