2016-06-28 5 views
1

Итак, я пытаюсь сделать так, чтобы данные в моем блестящем приложении прокручивались вверх и фокусировались на элементе после того, как кто-то нажимает на следующую страницу. Следующий код работает, но проблема заключается в том, что фокус работает каждый раз, когда его обращается (из drawCallBack)Блестящие Datatables - фокус после загрузки страницы

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

Я знаю, что есть мероприятие под названием страница (https://datatables.net/reference/event/page), который должен работать, но я не могу показаться, получите код в порядке. Может кто-нибудь мне помочь?

+0

Я использую версию развития DT, и пытается его примеры, как обратный вызов = JS, просто делает свою таблицу ('table.page („следующий“) рисовать (ложь).) не отображается – KingOfKong

+0

Если я что-то не понимаю, код JS, который вы дали, ничего не делает. В 'callback' событие' table.on ("page.dt", function() .... 'должно происходить только тогда, когда страница изменяется так, как вы этого хотите, возможно, это помогает. – Carl

ответ

2

Я не совсем понимаю, какова ваша цель, но я вижу, что вы хотите запускать 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"); 
     }) 
     ' 
    ) 
    ) 
    } 
) 
+0

Спасибо большое, что сработало. думаю, что я вставлял код обратного вызова в параметры, и, возможно, поэтому он не работал? На самом деле я, возможно, тоже был смущен между drawCallback, который является функцией данных и сам обратный вызов – KingOfKong