Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中的Datatable:在JavaScript的帮助下,使用KeyTable扩展从Datatable中读取标记的单元格_Javascript_R_Shiny_Datatables_Dt - Fatal编程技术网

R中的Datatable:在JavaScript的帮助下,使用KeyTable扩展从Datatable中读取标记的单元格

R中的Datatable:在JavaScript的帮助下,使用KeyTable扩展从Datatable中读取标记的单元格,javascript,r,shiny,datatables,dt,Javascript,R,Shiny,Datatables,Dt,我还有一个问题。我使用带有keyTable扩展名的DataTable。 此扩展标记单个单元格,您可以使用箭头键在表格中导航 我想读出,在任何时候选择什么单元格。我认为最简单的方法是使用JavaScript,但我是JS的绝对初学者,所以你必须帮助我 代码式 "table.on('key', function(e, datatable, key, cell, originalEvent){", " var targetName = originalEvent.targ

我还有一个问题。我使用带有keyTable扩展名的DataTable。 此扩展标记单个单元格,您可以使用箭头键在表格中导航

我想读出,在任何时候选择什么单元格。我认为最简单的方法是使用JavaScript,但我是JS的绝对初学者,所以你必须帮助我

代码式

"table.on('key', function(e, datatable, key, cell, originalEvent){",
"  var targetName = originalEvent.target.localName;",
"  if(key == 13 && targetName == 'body'){",
"      Shiny.setInputValue('Ausgaben_zelle_aenderung', cell.node());",
"  }",
"});",
"table.on('key-focus', function(e, datatable, cell, originalEvent){",
"  var targetName = originalEvent.target.localName;",
"  var type = originalEvent.type;",
"  if(type == 'keydown' && targetName == 'input'){",
"    if([9,13,37,38,39,40].indexOf(originalEvent.keyCode) > -1){",
"      Shiny.setInputValue('Ausgaben_zelle_aenderung', cell.node());",
"    }",
"  }",
"});"
当我处于编辑模式时,提供所选单元格的信息。这很有效。我想修改此代码,以便在不更改值的情况下获取单元格信息。所以我试着修改代码,但是代码像

"table.on('key', function(e, datatable, key, cell, originalEvent){",
"  if([9,13,37,38,39,40].indexOf(key) > -1){",
"      Shiny.setInputValue('test1', cell.node());",
"  }",
"});"
它不起作用。你能帮我吗

致以最良好的问候 切夫科赫在本代码中:

"table.on('key-focus', function(e, datatable, cell, originalEvent){",
"  var targetName = originalEvent.target.localName;",
"  var type = originalEvent.type;",
"  if(type == 'keydown' && targetName == 'input'){",
"    if([9,13,37,38,39,40].indexOf(originalEvent.keyCode) > -1){",
"      Shiny.setInputValue('Ausgaben_zelle_aenderung', cell.node());",
"    }",
"  }",
"});"
targetName
是按键所在元素的类型。当您处于可编辑模式时,它是一个
输入
。因此,如果您希望始终获取单元格信息,请删除
targetName==“input”
测试:

"table.on('key-focus', function(e, datatable, cell, originalEvent){",
"  var type = originalEvent.type;",
"  if(type == 'keydown'){",
"    if([9,13,37,38,39,40].indexOf(originalEvent.keyCode) > -1){",
"      Shiny.setInputValue('Ausgaben_zelle_aenderung', cell.node());",
"    }",
"  }",
"});"

如果我正确理解您想要的内容,我将尝试删除
关键焦点
事件处理程序中的
&&targetName==“input”
。(你应该总是提供一个最小的可复制的例子,这样想帮助你的人就可以尝试一下)。这可能很容易!再次非常感谢您!