2012-04-30 6 views
7

Używam codemirror z textareas w interfejsie z kartami, kiedy nie ma mnie na karcie zawierającej codemirror, a następnie do niego, otrzymuję pustą białą spację bez numerów linii lub kursora, kiedy odświeżam stronę to działa , Wiem, że to dlatego, że zawartość zakładek jest ukryta przy użyciu display: none;, więc jak mogę rozwiązać ten problem?Jak odświeżyć codemirror, gdy jego styl div staje się blokiem wyświetlania?

tutaj jest mój kod, (jestem również za pomocą 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(); 

z góry dzięki.

Odpowiedz

11

Po przełączeniu się na kartę zawierającą edytor należy się także upewnić, że dzwonisz pod numer refresh.

5

Umieść ten kod poniżej

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

pracował dla mnie, należy go umieścić na górze strony. nadzieję, że pomaga.