Ho avuto una piccola domanda. Ho provato a fare molte ricerche ma non ho avuto fortuna. C'è un modo in cui R-shiny deve catturare un doppio clic su un elemento come un pulsante.Doppio clic in R-lucido
6
A
risposta
12
Ecco un modo per farlo. La chiave è rilevare l'evento dblclick
sul lato client (ad esempio, ui), quindi richiamare Shiny.onInputChange
per aggiornare il valore di una variabile R, che può quindi essere prelevata dal server.
Ecco cosa succede quando si fa doppio clic sul pulsante.
- Il valore viene incrementato di 1
- Il valore incrementato viene utilizzato per aggiornare la variabile
x
. - Il server rileva la modifica in
x
- Il server aggiorna
textOutput
.
library(shiny) ui = bootstrapPage( tags$button(id = 'mybutton', 'button', class='btn btn-primary', value = 0), textOutput('x'), # when button is double clicked increase the value by one # and update the input variable x tags$script(" $('#mybutton').on('dblclick', function(){ var val = +this.value this.value = val + 1 Shiny.onInputChange('x', this.value) console.log(this.value) }) ") ) server = function(input, output, session){ output$x <- renderText({ input$x }) } runApp(list(ui = ui, server = server))
0
Ho aggiornato la mia risposta in base al commento qui sotto. Qui ho usato una soglia di differenza di tempo di 0,2 secondi per distinguere tra un doppio orologio e un clic regolare. Ho usato un approccio leggermente diverso nella mia app. Ho semplicemente controllato quante volte il pulsante è stato premuto controllando se è divisibile per 2 o meno.
library(shiny)
t1 <<- Sys.time()
ui =fluidPage(
actionButton("my_button", "Dont Touch it!"),
mainPanel(textOutput("x"))
)
server = function(input, output, session){
my_data <- reactive({
if(input$my_button == 0)
{
return()
}
if(input$my_button%%2!=0)
{
t1 <<- Sys.time()
}
if(input$my_button%%2==0 & (Sys.time() - t1 <= 0.2))
{
"You pushed the button twice!"
}
})
output$x <- renderText({my_data()})
}
runApp(list(ui = ui, server = server))
Problemi correlati
- 1. DataGridView elemento doppio clic
- 2. Evidenziazione doppio clic
- 3. Highcharts - Evento doppio clic
- 4. Javafx 2 clic e doppio clic
- 5. Pulisci singolo clic + doppio clic su Silverlight?
- 6. WPF: clic singolo con pulsante + doppio clic
- 7. Intercetta il clic del mouse singolo o doppio - Esegui solo il codice doppio clic sul doppio clic
- 8. Distinguere tra un solo clic e doppio clic in Java
- 9. Disattiva espansione dopo doppio clic
- 10. Catching doppio clic in Cocoa OSX
- 11. come ottenere il doppio clic in WPF
- 12. Installazione con doppio clic in Ubuntu?
- 13. Doppio clic in selenio di pitone
- 14. Attuare doppio clic sul pulsante in Android
- 15. doppio clic in una posizione specifica
- 16. jQuery animazione: Ignora doppio clic
- 17. Evento doppio clic su Android
- 18. jQuery .load() Come impedire il doppio caricamento dal doppio clic
- 19. Persone che fanno doppio clic su tutto nelle pagine Web ... jQuery doppio clic problemo
- 20. Il doppio clic sulle intestazioni di NSOutlineView sta attivando il metodo del doppio clic?
- 21. Direzione eventi del mouse [DllImport ("user32.dll")] clic, doppio clic
- 22. Fare doppio clic sulla riga DataGridView?
- 23. Evento doppio clic sul bordo finestra WPF
- 24. Disabilita doppio clic sinistro su google map
- 25. Estensione Chrome doppio clic su una parola
- 26. necessario fare doppio clic su Firefox
- 27. Configurazione evento doppio clic griglia angolare ui
- 28. iPhone UITabbar controller doppio clic su pops
- 29. Fare doppio clic su java -jar MyJar.jar
- 30. MvvmLight EventToCommand e WPFToolkit DataGrid doppio clic
AFAIK due clic singoli NON equivalgono a un doppio clic. – Ramnath
@Ramnath Ho aggiornato la mia risposta per includere la soglia temporale del "doppio clic" –