8
我想在我的閃亮應用中有一個情節,用戶可以點擊或選擇某些區域,所以我使用的點擊和筆刷參數爲plotOutput
。我的問題是,當啓動畫筆時,也會調用點擊處理程序。我想知道點擊是什麼時候發生的,並且我想知道何時製作畫筆,但如果點擊是畫筆的一部分,那麼我想忽略它。ggplot2:如何區分點擊刷?
例如:在下面的應用程序中,如果您只是刷(單擊某處並拖動鼠標),您將看到「單擊」消息以及「刷」消息。在這種情況下,我只想得到「刷」消息。
library(shiny)
library(ggplot2)
runApp(shinyApp(
ui = fluidPage(
plotOutput("plot", click = "click", brush = "brush")
),
server = function(input, output, session) {
output$plot <- renderPlot({
ggplot(mtcars, aes(wt, mpg)) + geom_point()
})
observeEvent(input$click, {
cat("clicked\n")
})
observeEvent(input$brush, {
cat("brushed\n")
})
}
))
根據'plotOutput',似乎沒有「鼠標按鈕向上」的消息,您需要在點擊和刷牙之間正確區分。一種解決方法是定義超時(例如200毫秒),僅在超時後處理點擊事件,並相應地在該超時後忽略所有的刷事件。是否有一個原因,而不是簡單地聽取雙擊事件? – krlmlr
我不想僅僅因爲用戶體驗而使用dblclick,它更簡單,點擊更有意義。 也許我只是需要睡覺(上午4:30),但我不知道你的建議如何解決我的問題,但我想了一下,似乎沒有照顧我的問題 –
如果在最後一次單擊事件之後,畫筆事件發生少於200毫秒,則您處理它。如果不是,你會忽略它。你只能在事件發生後200毫秒處理點擊,你必須爲此設置某種計時器。 – krlmlr