我使用内联Ckeditor
来编辑内容。我想将keypress
事件绑定到div i edit。我的意思是,当我改变div的内容时,我需要一个会触发的事件。
这是我如何做到这一点的一个例子
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/ckeditor/4.2/ckeditor.js"></script>
</head>
<body>
<div id="ckediv" contenteditable="true">Editing with CKEDITOR</div>
<br>
<script type='text/javascript'>
$( "#ckediv" ).keypress(function() {
alert('cke key pressed');
});
</script>
</body>
</html>
问题是当我按keypress
或ie
键时,chrome
和enter
不会触发delete
。如果我使用contenteditable =“true”创建一个div但没有Ckeditor,那么该事件运行良好。
这是一个jsfiddle代码,显示它现在如何工作http://jsfiddle.net/uAc7c/4/。我不知道为什么,但由于某种原因,这个jsfiddle(keypress事件)在ie中不起作用。当我使用上述源进行本地测试时,它可以工作。
这里有一个没有Ckeditor的jsfiddle,它显示了它应该如何工作http://jsfiddle.net/mPM4J/4/
答案 0 :(得分:0)
JQuery Documentation说:
注意:由于任何官方规范都未涵盖按键事件,因此使用它时遇到的实际行为可能因浏览器,浏览器版本和平台而异。
所以我猜IE和Chrome是两个不受支持的浏览器。
因此请尝试使用keyup事件,如下所示:
$( "#ckediv" ).keyup(function() {
alert('cke key pressed');
});
有关详细信息,请参阅此处: KeyUp Documentation in the JQuery API