gpt4 book ai didi

javascript - 如何更改 Handsontable 中已更改单元格的颜色?

转载 作者:行者123 更新时间:2023-11-30 17:48:59 28 4
gpt4 key购买 nike

我正在使用 Handsontable 插件,当用户更改单元格中的值时,它应该变成黄色,以便他们可以跟踪已更改的内容。在这种情况下,黄色是类 .changeInput。棘手的部分是当你双击单元格来改变它时,它变成了一个文本区域而不再是一个 td。有任何想法吗?提前致谢。

http://jsfiddle.net/PAH5J/

jQuery

$("textarea.handsontableInput").change(function (){ 
//$(this).find(td).addClass('changeInput');
$('.htNumeric .current').addClass('changeInput');
});

最佳答案

要标记每个有变化的单元格,您可以创建自定义渲染器并仅在数据(“变化”)像这样存在时才应用

//Custom renderer add class if the element have the data "change"
var myRenderer = function (instance, td, row, col, prop, value, cellProperties) {
Handsontable.TextCell.renderer.apply(this, arguments);
if($(td).data("change")){
$(td).addClass('changeInput');
}
};
$('#example').handsontable({
data: data,
minSpareRows: 1,
colHeaders: true,
contextMenu: true,
cells: function (row, col, prop) {//set the new renderer for every cell
return {type: {renderer: myRenderer}};
}
});
//afterChange get every cell and add class and data
$('#example').handsontable('getInstance').addHook('afterChange', function(changes) {
var ele=this;
$.each(changes, function (index, element) {
$(ele.getCell(element[0],element[1])).addClass('changeInput').data("change",true);
});

$("#example").on("keyup","textarea.handsontableInput",function (){
$(this).addClass('changeInput');
}).on("blur","textarea.handsontableInput",function (){
$(this).removeClass('changeInput');
});

http://jsfiddle.net/PAH5J/8/
编辑
要移动突出显示的区域,您可以像这样使用 cellProperties 而不是 .data()

var myRenderer = function (instance, td, row, col, prop, value, cellProperties) {
Handsontable.TextCell.renderer.apply(this, arguments);
if (cellProperties.change) {//check for new property change in the cell
$(td).addClass('changeInput'); //add the changeInput class to the actual td
}
};
$('#example1').handsontable('getInstance').addHook('afterChange', function(changes) {
var ele=this;
$.each(changes, function (index, element) {
//add the changeInput class to the actual td
$(ele.getCell(element[0],ele.propToCol(element[1]))).addClass('changeInput')
//get the cell properties and create a new one "change"
//to check in the renderer
ele.getCellMeta(element[0],ele.propToCol(element[1])).change=true;
});
});

关于javascript - 如何更改 Handsontable 中已更改单元格的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19500164/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com