Javascript 单击上下文菜单';粗体';可手持
我正在使用Javascript 单击上下文菜单';粗体';可手持,javascript,jquery,contextmenu,handsontable,custom-contextmenu,Javascript,Jquery,Contextmenu,Handsontable,Custom Contextmenu,我正在使用jquery最新版本开发handsontable.js。 我想添加新功能以添加到Handsonalbe上下文菜单粗体和普通文本。我在contextMenu中添加了这两个菜单选项。 但是如何使所有选定的单元格文本加粗和正常 以下是我的jquery代码: $("#A_tabledata").handsontable({ data: data, startRows: 1, startCols: 2, minRows: 1,
jquery
最新版本开发handsontable.js
。
我想添加新功能以添加到Handsonalbe上下文菜单
粗体
和普通文本
。我在contextMenu
中添加了这两个菜单选项。
但是如何使所有选定的单元格
文本加粗和正常
以下是我的jquery代码:
$("#A_tabledata").handsontable({
data: data,
startRows: 1,
startCols: 2,
minRows: 1,
minCols: 2,
maxRows: 400,
maxCols: 200,
rowHeaders: false,
colHeaders: false,
minSpareRows: 1,
minSpareCols: 1,
mergeCells: true,
cells: function (row, col, prop) {
var cellProperties = {};
cellProperties.renderer = "defaultRenderer"; //uses lookup map
return cellProperties;
},
contextMenu: {
callback: function(key, options) {
if(key == 'bold'){
//Return index of the currently selected cells as an array [startRow, startCol, endRow, endCol]
var sel = this.getSelected() ;
var boldValues = ''; //How can i get cell value?
// How can i set value back to in the cell?
}
if(key == 'normalText'){
//Return index of the currently selected cells as an array [startRow, startCol, endRow, endCol]
var sel = this.getSelected();
var normalValues = ''; //How can i get cell value?
// How can i set value back to in the cell?
}
},
items: {
"row_above": {},
"row_below": {},
"col_left": {},
"col_right": {},
"hsep2": "---------",
"remove_row": {name:'Remove row(s)'},
"remove_col": {name:'Remove columns(s)'},
"hsep3": "---------",
"alignment" : {},
"mergeCells" : {},
"hsep4": "---------",
"undo": {},
"redo": {},
"hsep5": "---------",
"bold": {"name": "Bold"},
"normalText": {"name": "Normal Text"}
}
},
cell: <?php echo $metadata; ?>,
mergeCells: <?php echo $metadata; ?>
});
$(“#A#u tabledata”)。可手持({
数据:数据,
startRows:1,
startCols:2,
麻雀:1,
明科尔斯:2,
最大行数:400,
马克斯:200,
行标题:false,
colHeaders:false,
会议记录:1,
minSpareCols:1,
对,,
单元格:函数(行、列、属性){
var cellProperties={};
cellProperties.renderer=“defaultRenderer”;//使用查找映射
归还财产;
},
上下文菜单:{
回调:函数(键、选项){
如果(键=='bold'){
//以数组形式返回当前选定单元格的索引[startRow、startCol、endRow、endCol]
var sel=this.getSelected();
var boldValues='';//如何获取单元格值?
//如何将单元格中的值设置回?
}
如果(键=='normalText'){
//以数组形式返回当前选定单元格的索引[startRow、startCol、endRow、endCol]
var sel=this.getSelected();
var normalValues='';//如何获取单元格值?
//如何将单元格中的值设置回?
}
},
项目:{
“上面第u行”:{},
“下面第u行”:{},
“col_left”:{},
“col_right”:{},
“hsep2”:“-----------”,
“删除行”:{name:'remove row(s)},
“删除列”:{name:'remove columns},
“hsep3”:“-----------”,
“对齐”:{},
“合并单元格”:{},
“hsep4”:“-----------”,
“撤消”:{},
“重做”:{},
“hsep5”:“-----------”,
“粗体”:{“名称”:“粗体”},
“普通文本”:{“名称”:“普通文本”}
}
},
单元格:,
合并单元格:
});
更新
有关我想要的更多信息,我在此处添加图像:
在此图像中,您可以看到蓝色区域。当我从关联菜单中单击“粗体”时,我希望所有这些单元格都是粗体的。当我点击上下文菜单中的“普通文本”时,返回到正常状态
如何获取单元格值?
如何将单元格中的值设置回
我在许多论坛和帖子中搜索过,但没有得到答案:
提前感谢。如果您看到方法
getSelected()
的文档,它会说:
getSelected(){Array}以数组形式返回当前选定单元格的索引
[startRow,startCol,endRow,endCol]
起始行和起始列是活动单元格的坐标(选择从这里开始)。
返回:{Array}所选索引的数组 在您的情况下不需要此方法,请参阅下面的演示或使用我添加的代码示例 因此,根据这一点,您只需要:
callback: function(key, options) {
if (key === 'bold') {
$('.area').html(function() {
return $('<strong>', {
text: this.textContent
});
});
} else if (key === 'normal') {
$('.area').html(function() {
return this.textContent
});
}
},
正文{
背景:白色;
利润率:20px;
}
氢{
利润率:20px0;
}
我知道这不是最好的解决方案,但如果没有其他办法,您可以这样做:
var sel = this.getSelected(), row = sel[0] + 1, col = sel[1];
$('table tr:eq(' + row + ') td:eq(' + col + ')').css('font-weight', 'bold');
嗨,谢谢你的回答。我已经为我想要的添加了一个图像。这会返回什么
this.getSelected()
?这似乎很有用。它将返回类似于5,1,1,2Seems单元格索引的内容。是吗?@BhavinSolanki这是一个迟来的回复,但你可以看看怎么做?我添加了一个工作片段。我希望这就是你要找的。