gpt4 book ai didi

javascript - 使用 SlickGrid 以编程方式触发单元格复制 (Ctrl+c)

转载 作者:行者123 更新时间:2023-11-30 10:39:49 26 4
gpt4 key购买 nike

我正在使用 Slickgridslick.cellcopymanager.js 中实现的copy/paste 功能,它工作正常(即如果你选择一些单元格并按 Ctrl+c 然后这些单元格的内容将被复制到您的剪贴板中)。

我想以编程方式触发 Ctrl+c 操作(例如,允许通过单击按钮而不是按键来进行复制/粘贴)。我知道如何为 Ctrl+c 定义 keydown 事件:

var e = jQuery.Event("keydown");        
e.which = 67;
e.ctrlKey = true;

但是我无法找出用哪个对象触发该事件以及如何模拟手动 Ctrl+c。首先,我尝试了一个简单的事件触发器,但没有用:

-div_dom_from_selected_cell.trigger(e);//什么都没发生
-grid_dom_wrapper.trigger(e);//什么都没发生
-$('body').trigger(e);//什么都没发生
-my_grid.trigger(e);//触发器不是函数

然后我扩展了 slick.cellcopymanager.js 以使 handleKeyDown 函数在外部可用:

$.extend(this, {
"init": init,
"destroy": destroy,
"clearCopySelection": clearCopySelection,
"handleKeyDown": handleKeyDown, // ADDED THIS LINE
"onCopyCells": new Slick.Event(),
"onCopyCancelled": new Slick.Event(),
"onPasteCells": new Slick.Event()
});

并尝试使用它:

var copyManager = new Slick.CellCopyManager();
copyManager.init(my_grid);
copyManager.handleKeyDown(e, { cell: cell, row: row, grid: my_grid } );

单元格的复制仍然不起作用,尽管:
-me 正确选择了一个单元格(它有 selected 类)
-handleKeyDown 被正确触发
- handleKeyDown 中的 eargs 参数看起来不错(我正在使用 console.log 进行跟踪,但不能查看手动 Ctrl+c 和编程尝试之间的任何区别`

如何触发 Ctrl+c 事件以编程方式复制单元格?

最佳答案

这对我从 example page 上的控制台运行很有效.

// Copy from row 2, column 5
var row = 2, col = 5;
grid.getSelectionModel().setSelectedRanges([new Slick.Range(row,col)]);
var e = jQuery.Event("keydown");
e.which = 67;
e.ctrlKey = true;
grid.onKeyDown.notify(null, e);

然后粘贴:

// Past to row 3, column 4
var row = 3, col = 4;
grid.getSelectionModel().setSelectedRanges([new Slick.Range(row,col)]);
var e = jQuery.Event("keydown");
e.which = 86;
e.ctrlKey = true;
grid.onKeyDown.notify(null, e);

关于javascript - 使用 SlickGrid 以编程方式触发单元格复制 (Ctrl+c),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11718610/

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