在R Shiny中将鼠标光标更改为手(指针)

px9o7tmv  于 2023-05-04  发布在  其他
关注(0)|答案(2)|浏览(143)

当用户将鼠标悬停在数据表单元格上时,如何将鼠标悬停图标更改为指针(手)。我有4列在一个datatable和第4列行细胞是显示工具提示鼠标。我需要改变光标图标指针时,工具提示显示。我认为这可以通过dt包选项和JS来实现,但到目前为止还没有成功,任何提示都可以在R Shiny UI中实现相同的功能。

5vf7fwbs

5vf7fwbs1#

使用CSS Script配合DT Package的rowCallback功能实现。下面是iris datatable的代码:

library(shiny)
library(DT)

shinyApp(
ui = fluidPage(
DT::dataTableOutput("irisTable")
),
server = function(input, output) {

output$irisTable <- DT::renderDataTable({
  DT::datatable(datasets::iris, 
                options = list(rowCallback = JS(
                  "function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {",
                  "var full_text = aData[1] + ','+ aData[2] + ',' + aData[3] + ','+ aData[4];",
                  "$('td:eq(5)', nRow).attr('title', full_text);", # Tool Tip
                  "$('td:eq(5)', nRow).css('cursor', 'pointer');", # Cursor icon changes to hand (pointer) on Hover
                  "}")
                )
  )

})
}
)
6jygbczu

6jygbczu2#

如果其他任何人正在努力在datatable单元格上显示指针,您可以通过将参数cursor ='pointer'传递到格式化函数DT::formatStyle()中,然后调用input${output_table}_cell_clicked来模拟Shiny DT中的超链接行为。工作示例如下:

library(magrittr)    
library(shiny)
library(DT)
    
    shinyApp(
      ui = fluidPage(
        DT::dataTableOutput("irisTable")
      ),
      server = function(input, output) {
        
            
        output$irisTable <- DT::renderDT({
          DT::datatable(iris, selection = 'none') %>% 
            DT::formatStyle(., which('Sepal.Width' %in% names(iris))+1 , color = 'blue', cursor='pointer')
        })
        
          shiny::observeEvent(input$irisTable_cell_clicked, {
            print(input$irisTable_cell_clicked)
          })
          
      }
    )

相关问题