我正在尝试创建一个包含多个内联CKEditor字段的文档,而keyup正在抛出一个循环。 “key”事件工作正常(但没有输入最后一个字符),但是“keyups”根本没有被捕获,除非我使用editor.document.on,这是其他几个快乐提供的答案。
不幸的是,由于我有多个(超过13个)可能的字段,事件似乎除了事件本身之外不会返回任何内容。没有目标信息(我需要ID传递给我的保存数据功能),也没有编辑器(检索内容)。
目标是在输入数据时保存并验证输入的数据。我在脑海里称它们为字段,但它们都是div(因此是内联编辑)。
使用Javascript:
$(function(){
CKEDITOR.disableAutoInline = true;
$("div[contenteditable='true']" ).each(function( index ) {
var content_id = $(this).attr('id');
CKEDITOR.inline( content_id, {
customConfig: '/majors/ckconfig.js'} );
});
CKEDITOR.document.on('keyup', function(event){
console.log(event.editor.getData()); // need to get the data, and the ID of the element.
});
});
答案 0 :(得分:3)
为什么不使用editor#change活动?
var editor = CKEDITOR.inline( content_id,
{ customConfig: '/majors/ckconfig.js' } );
editor.on( 'change', function() {
console.log( editor.getData() );
} );
至于keydown,如果您仍然感兴趣,可以直接将监听器添加到可编辑元素中:
var editor = CKEDITOR.inline( content_id,
{ customConfig: '/majors/ckconfig.js' } );
editor.on( 'contentDom', function() {
var editable = editor.editable();
editable.attachListener( editable, 'keyup', function() {
console.log( editor.getData() );
} );
} );
在editable#attachListener
方法文档中阅读有关已使用方法的更多信息。