2017-09-12 5 views
0

データテーブルのセルにツールチップ(またはマウスオーバーポップアップ)を追加して、別の列からデータを取り出す方法を教えてください。別の列のデータシートツールチップ

たとえば、データテーブルにmtcarsの最初の3つの列を表示すると、マウスで現在表示されている車名の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

次のように、あなたのサーバコードを変更することができ馬力でツールチップを取得するには:

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カラムの値を最初の4つの列にツールチップを追加します。 データセットにhpカラムが含まれていますが、そのカラムをcolumnDefsパラメータで非表示にしています。

希望すると助かります!

+0

それはトンを助けますか?実際には、これは私の質問に完全に答えます。本当にありがとう! – magasr