表格列的R闪亮鼠标悬停文本

Posted

技术标签:

【中文标题】表格列的R闪亮鼠标悬停文本【英文标题】:R shiny mouseover text for table columns 【发布时间】:2015-09-16 09:57:10 【问题描述】:

如何为 R 闪亮数据表显示中的列名创建 mouseover text。 我正在尝试为用户提供一些文本以了解列名。 我也签入了 DT 包,但找不到解决方案。 我可以为列名创建标签,并在用户选中一个框时显示所有这些标签,这会占用大量空间,我不希望这样。 有什么建议吗?

【问题讨论】:

你指的是 Shiny 中的 javascript DataTable 吗? 我使用renderDataTableShiny中渲染的数据表 可能感兴趣:***.com/questions/16449252/tooltip-on-shiny-r 您能否提供一个可重现的示例。另外,检查一下。这可能会有所帮助。转至 4.3 选项中的回调。 rstudio.github.io/DT/options.html 您可以使用<th>title 属性并创建自定义表格容器。请参阅rstudio.github.io/DT 的“自定义表格容器”部分 【参考方案1】:

为了扩展我上面的评论,下面是一个示例,显示了我使用 title 属性的含义:

library(DT)
sketch = htmltools::withTags(table(
  class = 'display',
  thead(
    tr(
      th('', title = 'Row Names'),
      th('Sepal.Length', title = 'The Sepal Length'),
      th('Sepal.Width', title = 'The Sepal Width'),
      th('Petal.Length', title = 'The Petal Length'),
      th('Petal.Width', title = 'The Petal Width'),
      th('Species', title = 'Iris Species')
    )
  )
))
datatable(iris, container = sketch)

这是另一种使用 JavaScript (jQuery) 添加 title 属性的方法:

library(DT)
datatable(iris, callback = JS("
var tips = ['Row Names', 'The Sepal Length', 'The Sepal Width',
            'The Petal Length', 'The Petal Width'],
    header = table.columns().header();
for (var i = 0; i < tips.length; i++) 
  $(header[i]).attr('title', tips[i]);

"))

【讨论】:

感谢您的替代方法。 谢谢@Yihui ...将鼠标悬停到所有表格单元格而不是标题的相应方法是什么?我已经尝试了很多,但到目前为止我还没有成功...谢谢 jquery 版本似乎对我不起作用——当我试图包含这个 sn-p 时,我的表根本没有加载。所以我改用容器方法,这很有效。但是我之前使用tableHeader(table,escape= F) 来定义我的列名。我怎样才能转义标题名称? 第一种方法对我有用。第二种方法(jquery)没有。谢谢!【参考方案2】:

您可能可以在 Shiny 的 renderDataTable() 函数中使用 options 来完成此操作。从 Shiny 中 DT 的documentation 页面,这样的东西应该可以工作。

renderDataTable(head(iris, 20), options = list(
  initComplete = JS(
    "function(settings, json) ",
        "$(this.api().table().header()).on(
            mouseenter: function () 
                //stuff to do on mouse enter
            ,
            mouseleave: function () 
                //stuff to do on mouse leave
            
         );",
    "")
))

【讨论】:

这可能适用于整个标题行的一个文本,但我正在为每个列名寻找一个单独的值。可以在renderDataTable 和HTML 标签中使用colnames 来完成一些事情吗?

以上是关于表格列的R闪亮鼠标悬停文本的主要内容,如果未能解决你的问题,请参考以下文章

将鼠标悬停在闪亮的 ggplot 上时的工具提示

Ext JS 网格面板:如何在鼠标悬停时显示内容

使用 ng-repeat 将鼠标悬停在表格中的文本上时显示图像

JavaScript获取鼠标悬停的文本[重复]

JavaScript获取鼠标悬停的文本[重复]

Google chrome:当鼠标悬停在表格单元格上时如何显示全文