Сверкаемая всплывающая подсказка / поповер не работает с подкачкой - PullRequest
0 голосов
/ 08 января 2019

Я хотел бы добавить всплывающее окно в каждой строке таблицы данных. Используя предоставленное решение [здесь] ( всплывающая подсказка или всплывающее окно в Shiny datatables для имен строк? ) (я не знаю JavaScript, поэтому мне пришлось слепо скопировать и вставить код) Мне удалось добавить всплывающее окно на первая страница таблицы.

Проблема в том, что таблица большая, поэтому я вынужден разбить ее на несколько страниц. Когда я выбираю другую страницу таблицы, всплывающее окно перестает работать.

Вот код, который я использую

output$view_data<-DT::renderDataTable({
    DT::datatable(Extraction(),rownames = FALSE,escape = FALSE,
        callback = JS(paste("
            var tips =",paste0("[",paste0("'",unlist(DrugFilter()),"'",collapse=","),"]"),",
            firstColumn = $('#view_data tr td:first-child');                                    
            for (var i = 0; i < tips.length; i++) 
                {$(firstColumn[i]).attr('title', tips[i]);}"
        ))
     ))
}, server = FALSE)

Как изменить код, чтобы всплывающее окно работало на всех страницах таблицы, а не только на первой?

1 Ответ

0 голосов
/ 08 января 2019

Я бы попробовал с rowCallback:

rowCallback <- c(
  "function(row, data, displayNum, displayIndex){",
  sprintf("  var tips = [%s];", 
          paste0("'",unlist(DrugFilter()),"'",collapse=",")),
  "  for(var i = 0; i < tips.length; i++){",
  "    if(displayIndex== i){",
  "      $('td:eq(0)',row).attr('title', tips[i]);",
  "    }",
  "  }",
  "}"
)

datatable(Extraction(), 
          rownames = FALSE, 
          escape = FALSE, 
          options = list(
            rowCallback = JS(rowCallback)
          )
)
...