R 确定是否在应用程序中单击了DT datatable

R 确定是否在应用程序中单击了DT datatable,r,shiny,dt,R,Shiny,Dt,下面是我获取表格单击事件的最佳尝试的工作示例: library(shiny) library(DT) runApp(shinyApp( ui = fluidPage(DT::dataTableOutput('table')), server = function(input, output, session) { output$table <- DT::renderDataTable({ dt <- data.frame(a = 1) dat

下面是我获取表格单击事件的最佳尝试的工作示例:

library(shiny)
library(DT)

runApp(shinyApp(
  ui = fluidPage(DT::dataTableOutput('table')),
  server = function(input, output, session) {
    output$table <- DT::renderDataTable({
      dt <- data.frame(a = 1)
      datatable(dt, rownames = FALSE, selection = 'none')
    })
    observeEvent(input$table_cell_clicked, {
      print(Sys.time())
    })}
))
库(闪亮)
图书馆(DT)
runApp(shinyApp)(
ui=fluidPage(DT::dataTableOutput('table')),
服务器=功能(输入、输出、会话){

输出$table我认为这可能会有帮助

尝试添加
回调
,使
闪亮。onInputChange
并添加一直更改的smth(
rnd

smt类

   JS("table.on('click.dt', 'td', function() {
            var row_=table.cell(this).index().row;
            var col=table.cell(this).index().column;
            var rnd= Math.random();
            var data = [row_, col, rnd];
           Shiny.onInputChange('rows',data );
    });")
然后像这样使用它:

library(shiny)
library(DT)
runApp(shinyApp(
  ui = fluidPage(DT::dataTableOutput('table')),
  server = function(input, output, session) {
    output$table <- DT::renderDataTable({
      datatable(data.frame(a = c(1,2),b=c(2,3)), rownames = FALSE, selection = 'none', callback = JS("table.on('click.dt', 'td', function() {
            var row_=table.cell(this).index().row;
            var col=table.cell(this).index().column;
            var rnd= Math.random();
            var data = [row_, col, rnd];
           Shiny.onInputChange('rows',data );
    });")
      )}
    )

    observeEvent(input$rows, {
      print(input$rows)
      print(Sys.time())

    })}
))
库(闪亮)
图书馆(DT)
runApp(shinyApp)(
ui=fluidPage(DT::dataTableOutput('table')),
服务器=功能(输入、输出、会话){

output$table由于输出最终是网页上的一个div,我设想您可以使用Javascript捕捉div单击事件。如果您的表位于多个页面上,则input$rows[1]将引用当前页面的行。要获取
observeEvent
中的绝对行号,请使用
input$table\u rows\u current[input$rows[1]+1]
,请参阅