2014-09-21 25 views
0

我使用codemirror在我的博客,這裏是代碼: 創建多個Codemirrors和保存值,以textarea的

var codeJs = document.getElementsByClassName("code-js"); 
var editor = []; 

for (var i=0; i<codeJS.length; i++){ 
    editor[i] = CodeMirror.fromTextArea(codeJS[i], { 
    lineNumbers: true, 
    matchBrackets: true, 
    autoCloseBrackets: true 
    }); 
    // Save the value of every codemirror to the textarea 
    editor[i].on("blur", function() {editor[i].save()}); 
} 

我在多個codemirrors上面的代碼,我要保存的值每codemirrors自己的textarea的,它做工精細,除了這行:

editor[i].on("blur", function() {editor[i].save()}); 

誰能figureout有什麼錯我的代碼?

回答

2

試試這個 editor [i] .on(「blur」,function(codeMirror){codeMirror.save()});

+0

爲了說明問題:實際的問題是'i'變量被你創建的所有函數共享,並且它將在循環結束時以'editor.length'結束,所以如果函數實際上被調用,它不會在'editor [i]'上找到編輯器。 Bala描述的解決方案是一個很好的解決方法。 – Marijn 2014-09-22 20:44:27