我使用中实现的copy/paste
功能Slickgrid
的slick.cellcopymanager.js
这是,如果你选择一些细胞,然后按Ctrl+c
然后将这些单元格的内容将被复制到工作的罚款(即你的剪贴板)。触发细胞复制(Ctrl + C)编程与SlickGrid
我想以编程方式触发Ctrl+c
动作(例如,通过单击按钮而不是按键来复制/粘贴)。我知道如何定义的keydown事件为Ctrl+c
:
var e = jQuery.Event("keydown");
e.which = 67;
e.ctrlKey = true;
但是我无法找出哪个对象触发与和如何以模拟手动Ctrl+c
该事件。首先,我试图对事件的简单触发器,它没有工作:
- div_dom_from_selected_cell.trigger(e); // nothing happens
- grid_dom_wrapper.trigger(e); // nothing happens
- $('body').trigger(e); // nothing happens
- my_grid.trigger(e); // trigger is not a function
然后我伸出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 });
细胞的复制仍然不工作,尽管:具有细胞正确选择(它有selected
类)
-me - handleKeyDown
被正确地解雇
- e
和args
参数内handleKeyDown
看起来不错(我与console.log
跟踪并不能看到手工Ctrl+c
和程序化attempt`之间的任何差别
我怎样才能触发Ctrl+c
事件以便以编程方式复制单元格?