当只有一个实例发生更改时,所有实例都会触发Ckeditor onchange
我使用ckeditor inline将一些用户可编辑的行添加到使用此代码的表中(该函数每行调用一次,参数是我想要的每种类型的可编辑列的Id)。忽略多余的阵列建筑当只有一个实例发生更改时,所有实例都会触发Ckeditor onchange,ckeditor,fckeditor,Ckeditor,Fckeditor,我使用ckeditor inline将一些用户可编辑的行添加到使用此代码的表中(该函数每行调用一次,参数是我想要的每种类型的可编辑列的Id)。忽略多余的阵列建筑 function activare_campuri_editabile_extinse(pu, adaos, cota, cant, cant_doc, pv) { var campuri_editabile = [ pu, adaos, cota, cant, cant_doc , pv]; $j.each(campur
function activare_campuri_editabile_extinse(pu, adaos, cota, cant, cant_doc, pv) {
var campuri_editabile = [ pu, adaos, cota, cant, cant_doc , pv];
$j.each(campuri_editabile, function(index) {
var ce = this;
editor = CKEDITOR.inline( $j('#' + this).attr('id'), {
enterMode : CKEDITOR.ENTER_BR,
on: {
blur: function( event ) {
var data = event.editor.getData();
if(ce.split('_')[0] == 'pu' || ce.split('_')[0] == 'pv') {
$j('#'+ce).text(formatare_cu_virgula(data));
}
if(ce.split('_')[0] == 'pu') {
verificare_modificare_pret('#' + ce, data, 'select_gestiune_primitoare' );
}
},
focus: function ( event ) {
var data = event.editor.getData();
if(ce.split('_')[0] == 'pu' || ce.split('_')[0] == 'pv') {
$j('#'+ce).text(deformatare_cu_virgula(data));
}
},
change: function( event ) {
if(event.editor.checkDirty() == true) {
var data = event.editor.getData();
if(ce.split('_')[0] == 'pu' || ce.split('_')[0] == 'pv' || ce.split('_')[0] == 'cota') {
corelare_valori_tabel(ce,'adaos', 'extins', data);
}
if(ce.split('_')[0] == 'adaos') {
corelare_valori_tabel(ce,'pret_vanzare', 'extins', data);
}
if(ce.split('_')[0] == 'cant') {
corelare_valori_tabel(ce, 'cantitate', 'extins', data);
}
event.editor.resetDirty();
}
}
}
} );
editor.config.keystrokes = [[ 13, 'doNothing']];
editor.resetDirty();
});
}
onchange函数用于修改行中的某些单元格,以保持数据的完整性(使用此示例:设置标记百分比,以便在增值税或进项价格发生变化时,销售价格保持不变)。问题是,当其中一个编辑器实例的一个onchange事件触发时,它们都会触发。看到两个或多个表格单元格如何以两种方式链接(更改标记将更改售价,而更改售价将更改标记),结果完全是混乱的
我在使用checkDirty和resetDirty方法时是否做错了什么?还是我遗漏了什么?(在ckEditor 4.01上运行onchange插件1.7)
我通过为直接启用了ckeditor的元素添加onkeyup处理程序来解决这个问题。因此,我没有通过CKEDITOR添加onchange事件,而是将onkeyup事件直接添加到数组中的每个元素。是否有在线示例?当你说“所有实例的触发器”时,你的意思是如果你在change函数中添加一个
console.log(“foo”)
,并且你更改了一个实例的数据,那么你的JS控制台中就会有多个“foo”?是的,就是这样。不仅是多个,而且是所有的。当其中一个实例发生更改时,所有连接了onchange处理程序的ckeditor实例都将触发