CodeMirror更改处理程序无法正常工作(Javascript基础知识)

时间:2014-07-17 04:21:02

标签: javascript codemirror

我目前正在学习javascript,为此我已经开始研究基于CodeMirror编辑器的小代码编辑器项目。现在我正在尝试实现一个hsaEditorChanged():boolean方法,当编辑器的内容从之前更改并且过去的第二次没有发生更改时返回true。当我运行此代码时,我的chrome js控制台在第71行给出了以下异常:Uncaught TypeError: undefined is not a functione.docLastChanged = new Date.getTime();。由于我对js缺乏了解,我无法找出问题所在,虽然它可能是一个非常愚蠢的问题......

任何人都可以帮我吗?非常感谢!

var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
    //...
});

editor.docLastChanged = new Date().getTime();
editor.hasChanged = true;

editor.hasEditorChanged = function(){
    var t = new Date().getTime();
    if ((t - editor.docLastChanged) > 1000 && editor.hasChanged) { //if no change for 1 sec
        editor.hasChanged = false;
        return true;
    }
    else return false;
}
//register onChange handler to update the editor.docLastChanged variable
var changeHandler = function(e){
    e.docLastChanged = new Date.getTime(); //ERROR HERE.
    e.hasChanged = true;
    console.log("changed");
}

editor.on('change', changeHandler(this));

1 个答案:

答案 0 :(得分:2)

new的优先级低于点的优先级,因此您正在执行new (Date.getTime)()。将代码更改为(new Date).getTime()或简单地+new Date以获得毫秒时间戳。

相关问题