Сверкаемая всплывающая подсказка / поповер не работает с подкачкой

1

Я хотел бы добавить всплывающее окно на каждый ряд данных. Используя предоставленное решение [здесь] (всплывающая подсказка или всплывающая подсказка в 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)

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

Теги:
shiny
dt
paging

1 ответ

1
Лучший ответ

Я хотел бы попробовать с 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)
          )
)
  • 0
    Спасибо @Stephane за ваш ответ. Я вижу улучшение, но оно все еще не работает должным образом. Теперь всплывающее окно появляется на первой странице таблицы, а также на других страницах. НО текст в всплывающем окне не обновляется при переходе с одной страницы на другие (т.е. текст всплывающего окна для строк на странице 2,3,4 ... остается таким же, как и для строк на первой странице)
  • 0
    Я решил изменить вызов функции на «function (row, data, displayNum, displayIndex)» и изменить «index» в «displayIndex» в операторе if. Если вы отредактируете свой ответ, я одобрю его. Спасибо за помощь
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню