15

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

4

2 回答 2

25

为了扩展我上面的评论,下面是一个示例,显示了我使用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]);
}
"))
于 2015-07-20T02:23:11.927 回答
2

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

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
            }
         });",
    "}")
))
于 2015-06-29T21:16:34.630 回答