【问题标题】:Shiny Datatables - focus after page load闪亮的数据表 - 页面加载后的焦点
【发布时间】:2016-06-28 19:21:49
【问题描述】:

所以我试图让我闪亮的应用程序中的数据表滚动到顶部并在有人点击下一页后专注于一个元素。以下代码正在运行,但问题是焦点在绘制时有效(因为 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) 的事件应该可以工作,但我似乎无法正确编写代码。谁能帮帮我?

【问题讨论】:

  • 我正在使用 DT 的开发版本,并尝试他的示例,例如 callback = JS('table.page("next").draw(false);') 只是让我的表格不显示向上
  • 除非我误解了什么,否则您提供的 JS 代码不会做任何事情。在callback 中,事件table.on("page.dt", function() .... 应该只在页面按照您的意愿更改时才会发生,所以这可能会有所帮助。

标签: r datatable shiny dt


【解决方案1】:

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

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");
      })
      '
    )
    )
  }
)

【讨论】:

  • 非常感谢,成功了。我想我将回调代码放入选项中,也许这就是它不起作用的原因?实际上,我可能也对作为数据表函数的 drawCallback 和回调本身感到困惑
猜你喜欢
  • 2018-04-30
  • 2013-03-28
  • 1970-01-01
  • 2023-03-27
  • 2020-01-25
  • 2017-07-15
  • 2020-05-30
  • 2021-12-17
  • 2016-03-08
相关资源
最近更新 更多