我正在使用文本编辑器作为codemirror。通常,当我尝试在textarea中使用onmouseup, onchange, oninput
之类的dom事件时,它可以工作,但是在集成了Codemirror之后,它就无法工作。请告诉我在文本编辑器中调用这些事件的正确方法。
没有codemirror,它就可以工作。
<textarea id="editor" rows="30" cols="100" onchange="myFunction()" onmouseup="second();"></textarea>
<div id="demo"></div>
<div id="second"></div>
<script>
function myFunction() {
document.getElementById('demo').innerHTML="The onchange function..";}
function second() {
document.getElementById('second').innerHTML="The mouseup function..";}
</script>
在集成codemirror文本编辑器时,它不起作用。这是代码:
<textarea id="editor" onchange="myFunction()" onmouseup="second();"></textarea>
<div id="demo"></div>
<div id="second"></div>
<script>
var editor = CodeMirror.fromTextArea
(document.getElementById('editor'),{
mode:"text/x-java",
lineNumbers:true,
autoCloseTags:true,
tabSize:5
});
editor.setSize("1000", "450");
</script>
<script>
function myFunction() {
document.getElementById('demo').innerHTML="The onchange function..";}
function second() {
document.getElementById('second').innerHTML="The mouseup function..";}
</script>
答案 0 :(得分:3)
由于这些事件实际上不是在文本区域上发生的,因为它是隐藏的,因此,您需要像下面这样将事件绑定到.CodeMirror
元素:
$(document).on('mouseup', '.CodeMirror', function() {
// do something...
});
$(document).on('change', '.CodeMirror', function() {
// do something...
});
此外,我使用keyup
而不是change
事件,因为您必须单击.CodeMirror
才能使更改功能运行...