Другой способ, используя некоторый Javascript в опции onInitialize
.Опция выбирается, если курсор мыши остается на одну секунду на этой опции.Вы можете выбрать другое значение задержки.Я считаю, что задержка полезна.Это позволяет перемещать курсор по выпадающему меню, не выбирая параметр, когда курсор касается его.
library(shiny)
jscode <- "function(){
var delay = 1000; // 1000ms = 1s
var setTimeoutConst;
$('.selectize-control')
.on('mouseenter', '.selectize-dropdown-content div .option', function(){
var $this = $(this);
clearTimeout(setTimeoutConst);
setTimeoutConst = setTimeout(function(){
$this.click();
}, delay);
}
).on('mouseleave', function(){
clearTimeout(setTimeoutConst);
});
}"
shinyApp(
ui = fluidPage(
selectizeInput("state", "Choose a state:",
list(`East Coast` = c("NY", "NJ", "CT"),
`West Coast` = c("WA", "OR", "CA"),
`Midwest` = c("MN", "WI", "IA")),
options = list(onInitialize = I(jscode))
),
textOutput("result")
),
server = function(input, output) {
output$result <- renderText({
paste("You chose", input$state)
})
}
)
}