我使用中實現的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
事件以便以編程方式複製單元格?