Javascript 当codemirror';父div样式是否成为显示块?

Javascript 当codemirror';父div样式是否成为显示块?,javascript,codemirror,Javascript,Codemirror,我在选项卡式界面中使用带有文本区域的codemirror,当我不在包含codemirror的选项卡中,然后转到它时,我会得到没有行号或光标的空白,当我刷新它工作的页面时,我知道这是因为选项卡内容使用display:none那么如何解决此问题 这是我的代码(我也在使用jquery): 提前感谢。切换到包含编辑器的选项卡时,请确保您也调用了刷新。尝试以下操作: // Refresh CodeMirror $('.CodeMirror').each(function(i, el){ el.Co

我在选项卡式界面中使用带有文本区域的codemirror,当我不在包含codemirror的选项卡中,然后转到它时,我会得到没有行号或光标的空白,当我刷新它工作的页面时,我知道这是因为选项卡内容使用
display:none那么如何解决此问题

这是我的代码(我也在使用jquery):


提前感谢。

切换到包含编辑器的选项卡时,请确保您也调用了
刷新

尝试以下操作:

// Refresh CodeMirror
$('.CodeMirror').each(function(i, el){
    el.CodeMirror.refresh();
});
您可以使用插件:

显示/autorefresh.js

当在隐藏的DOM中初始化编辑器时,此插件非常有用 节点,在编辑器运行时很难调用refresh的情况下 变得可见。它定义了一个选项autoRefresh,您可以将其设置为 如果编辑器在初始化时不可见, 它将在第一次可见时刷新。这已经完成了 通过每250毫秒轮询一次(您可以传递{delay: 500}作为配置此选项的选项值)。注意,这个插件将 仅在编辑器第一次可见时刷新一次,而不会刷新 注意进一步重新设置样式和调整大小

您只需添加JS库并将
autoRefresh
设置为
true

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

您如何添加它?@GáborCsikós将js保存在您的
CodeMirror
目录下的文件夹
/addon/display/autorefresh.js
。如果有人想了解有关autorefresh选项的更多详细信息:
var editor = CodeMirror.fromTextArea(document.getElementById($this.attr('id')), {
    lineNumbers: true,
    mode: text/html,
    enterMode: "keep",
    tabMode: "shift",
    autoRefresh: true
});