v17.0.0 移动端CellClick不生效
本帖最后由 Clark.Pan 于 2024-7-2 17:56 编辑产品:SpreadJS
版本:V17.0.0
调研编号:SJS-24943
LastReview:2024-7-2
V17.1.0已经修复
蓝色区域是可编辑区域、白色区域是禁止编辑区域
因为做了一些操作、在点击蓝色区域后、回自动聚焦单元格输入框、但是如果想失去聚焦就需要手动处理、我这这里采用的是CellClick事件监听来做的
然而遇到一个问题、cellClick在移动端点击禁用区域不会被触发
您好,根据您的描述做了一个小demo,点击白色禁止编辑区域,也会触发CellClick事件,
所以未能复现您的问题。
您可以在此demo基础上,添加相关代码,使问题可以复现后,再上传上来。
Ellia.Duan 发表于 2024-6-18 11:56
您好,根据您的描述做了一个小demo,点击白色禁止编辑区域,也会触发CellClick事件,
刚刚检查代码、发现代码中有一段代码、这个应该会影响点击
sheet.options.protectionOptions.allowSelectLockedCells = false
全部的禁用操作是这样的
function processLock (sheet, disabled) {
sheet.suspendPaint();
sheet.options.isProtected = true;
// sheet.options.protectionOptions.allowSelectLockedCells = false
for (var row = 0; row < sheet.getRowCount(); row++) {
for (var col = 0; col < sheet.getColumnCount(); col++) {
var cell = sheet.getCell(row, col);
if (cell.bindingPath()) {
if (disabled) {
cell.locked(true)
cell.backColor("white")
} else {
cell.locked(false)
cell.backColor("lightblue")
}
}
}
}
sheet.resumePaint();
}
移除了允许选择锁定单元格这个配置后确实可以了
我们系统的主要想实现的业务是想要去点击空白处、不去选中单元格、同时又能判断出当前点击的单元格是否可填写、然后确定是失去焦点、还是聚焦当前单元格 您好,我理解您删除掉这行代码已解决此问题。
sheet.options.protectionOptions.allowSelectLockedCells = false
至于您的业务逻辑,如果不去选中单元格,如何知道是锁定单元格呢? Ellia.Duan 发表于 2024-6-18 18:47
您好,我理解您删除掉这行代码已解决此问题。
sheet.options.protectionOptions.allowSelectLockedCells = ...
如果仅通过点击事件、有其他方法区分出单元格是禁用的还是非禁用的 在点击事件(CellClick)中,可以获取当前点击单元格的row,col 。
然后通过下面的代码获取是否锁定:
sheet.getCell(row,col).locked()
Ellia.Duan 发表于 2024-6-19 09:23
在点击事件(CellClick)中,可以获取当前点击单元格的row,col 。
然后通过下面的代码获取是否锁定:
如果添加了这个
sheet.options.protectionOptions.allowSelectLockedCells = false
在移动端无法触发cellClick事件
薇命是从 发表于 2024-6-19 09:56
最终想实现的其实就是点击空白区域可以触发输入框endEdit 、但是现在在移动端无法触发这个事件 本帖最后由 Ellia.Duan 于 2024-6-20 09:24 编辑
问题收到,需要调研下给您回复。SJS-24943
页:
[1]
2