Я пытаюсь добавить реактивный текст (название цвета от selectInput
) к телу блестящего приложения после tags$h3
. Я думаю, что это больше проблема с jquery, но сейчас он продолжает добавлять выбранный цвет, а не отображать строку «реактивно».Как динамически добавлять текст строки в тело блестящего приложения?
Вместо этого я хочу, чтобы строка внутри h3.colorLabel
была заменена.
ui.R
library(shiny)
jsCode <- "shinyjs.pageCol = function(params){
$('body').css('background', params);
/*$('.colorName').after('<h3></h3>').addClass('colorLabel');
$('h3.colorLabel').replaceWith('<h3>'+params+'</h3>').addClass('colorLabel');
*/
$('h3.colorName').after('<h3>'+params+'</h3>').addClass('colorLabel');
};
"
shinyUI(fluidPage(
useShinyjs(),
extendShinyjs(text = jsCode),
selectInput("col", "Colour:",
c("white", "yellow", "red", "blue", "purple")),
tags$h3('Just in case you are color-blind, the background color is:', class='colorName')
))
server.R
library(shiny)
library(shinyjs)
shinyServer(
function(input,output,session) {
observeEvent(input$col, {
js$pageCol(input$col)
})
})