闪亮的数据表 - 页面加载后的焦点

Shiny Datatables - focus after page load

所以我正在努力做到这一点,以便在有人点击下一页后,我闪亮的应用程序中的数据表会滚动到顶部并聚焦在一个元素上。以下代码有效,但问题是焦点在绘制时有效(由于 drawCallBack)

options=list(pageLength=50, drawCallBack = DT::JS(
      'function (paginateScroll) {
        $("html, body").animate({
          scrollTop: 0
        }, 300);
        $("th:first-child").focus();
        $(".paginate_button").bind("click", paginateScroll);
      }'
    ))

我知道有一个名为 page (https://datatables.net/reference/event/page) 的事件应该有效,但我似乎无法获得正确的代码。谁能帮帮我?

我不太明白你的目标是什么,但我看到你想 运行 JS 只在页面发生变化时,而不是在绘制时。这是一些JS,当页面更改时只有运行s。希望这会有所帮助:

library(shiny) 
library(DT)

shinyApp( 
  ui = fluidPage(
    mainPanel(DT::dataTableOutput("test")
    )
  ), 
  server = function(input, output,session) {     
    output$test <- DT::renderDataTable({
      mtcars

    },
    callback=DT::JS(
      'table.on("page.dt",function() {
        alert("Page has changed");
      })
      '
    )
    )
  }
)