Intento combinar dos funciones de JavaScript en una variable para poder llamar a ambas en la opción DT::datatable initComplete. Las funciones funcionan de forma independiente, pero cuando las combino, la tabla no se representa.
Función JS 1:
rownumber <- 8 jsc <- paste0("function() { $(this.api().table().row(", rownumber, ").node()).addClass('selected'); this.api().table().row(", rownumber, ").node().scrollIntoView(); }")Función JS #2:
jsc2 <- "function(settings, json) {$(this.api().table().header()).css({'background-color': '#2c3e50', 'color': '#fff'});}"Función JS #3 (la combinada):
jsc3 <- paste0("function() { $(this.api().table().row(", rownumber, ").node()).addClass('selected'); this.api().table().row(", rownumber, ").node().scrollIntoView(); } function(settings, json) {$(this.api().table().header()).css({'background-color': '#2c3e50', 'color': '#fff'});}")Cuando ejecuto el último con el código a continuación, no obtengo el resultado deseado de una fila de encabezado de color y que el foco se desplaza a la octava fila.
mtcars %>% datatable( options = list( dom = 't', paging = FALSE, scrollX = TRUE, scroller = TRUE, paging = TRUE, initComplete = JS(jsc3) ) )Agradezco si alguien puede ayudarme a combinar esas dos funciones en una línea de código que se procesará correctamente en DT::datatable.
initComplete necesita una y solo una devolución de llamada JS. En su jsc3 , definió dos funciones. Esto no se puede aceptar. Necesita fusionar dos funciones en una, como a continuación:
library(DT) rownumber <- 8 jsc3 <- paste0("function() { $(this.api().table().row(", rownumber, ").node()).addClass('selected'); this.api().table().row(", rownumber, ").node().scrollIntoView(); $(this.api().table().header()).css({'background-color': '#2c3e50', 'color': '#fff'}); } ") mtcars %>% datatable( options = list( dom = 't', paging = FALSE, scrollX = TRUE, scroller = TRUE, paging = TRUE, initComplete = JS(jsc3) ) )