代码之家  ›  专栏  ›  技术社区  ›  magasr

来自另一列的Datatable工具提示

  •  1
  • magasr  · 技术社区  · 8 年前

    如何将工具提示(或鼠标悬停弹出窗口)添加到数据表的单元格中,以从另一列中提取数据?

    例如,如果我在数据表中显示mtcars的前三列,如何显示工具提示,其中包含我当前用鼠标悬停的汽车名称的hp(马力)数据?

    similar questions on how you can display static text as a tooltip ,但我找不到将另一列中的数据显示为toolptip的方法。

    #ui.R
    library(shiny)
    library(DT)
    shinyUI(
      mainPanel(
        DT::dataTableOutput("tbl")
      )   
    )    
    
    #server.R
    
    library(shiny)
    library(DT)
    shinyServer(function(input, output,session) {
      output$tbl = DT::renderDataTable(
        datatable(mtcars[, 1:3]))
    }) 
    
    1 回复  |  直到 8 年前
        1
  •  2
  •   SBista    8 年前

    要使用hp获取工具提示,您可以修改服务器代码,如下所示:

       shinyServer(function(input, output,session) {
        output$tbl <- DT::renderDataTable({
          datatable(mtcars[, 1:4], options = list(rowCallback = JS(
            "function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {",
            "var full_text = aData[4]",
            "$('td:eq(0)', nRow).attr('title', full_text);",
            "$('td:eq(1)', nRow).attr('title', full_text);",
            "$('td:eq(2)', nRow).attr('title', full_text);",
            "$('td:eq(3)', nRow).attr('title', full_text);",
            "}"),
    
            columnDefs = list(list(visible=FALSE, targets=c(4)))
          )
          )
        }) 
      }) 
    

    这个 JS 代码将工具提示添加到值为hp列的前四列。 columnDefs 参数