BackBone事件不会在CodeMirror textarea上触发

时间:2013-06-03 12:11:42

标签: events backbone.js

var View = Backbone.View.extend({    
   events: {
      "keypress #editor": "updateContent",    
   },

   updateContent: function(ev) {
      # Update model    
   } 
});

我已在id为editor的textarea上应用了一个按键事件。最终这个代码可以工作,但是在使用CodeMirror转换textarea之后,按键不会触发事件。 虽然身份editor的textarea仍然存在。为什么这样,我该如何解决?

1 个答案:

答案 0 :(得分:0)

当您尝试通过CodeMirror从textarea格式化代码时,它会消耗textarea。所以,你输入的是包装器,而不是你的textarea。您应该处理CodeMirror的包装器以获取keypress事件。

尝试类似:

var editor = CodeMirror.fromTextArea(document.getElementById("editor"));
var View = Backbone.View.extend({    
   events: {
      "keypress .CodeMirror": "updateContent" 
   },

   updateContent: function() {
      console.log(editor.getValue());
   } 
});