ハイハターグラフを含むShinyアプリがあります。グラフは散布図であり、ドラッグ可能でクリック可能な点があります。ドラッグに関連するアクションは、理論上、クリックに関連するアクションと相互に排他的でなければなりません。相互排他的なドラッグ/ドロップグラフイベント
しかし実際には、ポイントのドラッグ時にクリックアクションが発生することがあります。マウスボタンを放してドラッグ操作が完了するまでクリックすることができないようにするだけで、ドラッグしないでドラッグするだけでドラッグするだけで、このアプリでは相互に排他的である必要があります。私のフルコードでは、イベントのタイプに応じて異なるJavaScriptアクションがShinyサーバーに返されます。一緒に発砲する両方のイベントが問題を引き起こしています。
解決策には、各イベントに関連付けられたJavaScriptアクションを追加することが必要と思われます。私のJavaScriptスキルは、これらの調整が何であるかを知るのに十分ではありません。この質問のいくつかの異なる変形を見つけても、潜在的な解決策は変わりませんでした。私が見つけた最も近いディスカッションはHighchartsのコンテキストhereですが、解決策はマスターのHighchart/draggable-events JSファイルと関係があります。
提案?あなたがアクションで、この動作を見ることができるおもちゃ例えば
:
rm(list=ls())
library(highcharter)
library(shiny)
ui <- fluidPage(
highchartOutput("hcontainer")
)
# MUTUAL EXCLUSIVITY:
# if you drag in the plot, you should either drag (and get no alert) OR
# get an alert (and the point shouldn't/won't move), but never both.
server <- function(input, output, session) {
output$hcontainer <- renderHighchart({
hc <- highchart() %>%
hc_chart(animation = FALSE) %>%
hc_title(text = "draggable points demo") %>%
hc_plotOptions(
series = list(
point = list(
events = list(
drop = JS("function(){ /* # do nothing, for demo */
}"
),
click = JS("function(){
alert('You clicked') /* # give alert, for demo */
}"
)
)
),
stickyTracking = FALSE
),
column = list(
stacking = "normal"
),
line = list(
cursor = "ns-resize"
)
) %>%
hc_tooltip(yDecimals = 2) %>%
hc_add_series(
type = "scatter",
data = stars,
draggableY = TRUE,
draggableX = TRUE,
hcaes(x = absmag, y=radiussun)
)
hc
})
}
shinyApp(ui = ui, server = server)
私は純粋なJSでこの問題を再現することができませんでした:http://jsfiddle.net/kkulig/z5y4b67e/あなたは、このいくつかのライブ作業のデモを提供することができ 問題? –
複製することができます:[http://jsfiddle.net/m5wnnnm5/1/](http://jsfiddle.net/m5wnnnm5/1/)。ポイントをドラッグすると、マウスを離す前にビートを一時停止します。これは散漫に関連するもので、またポイントx-draggableを持つように見えます。 また、最初の投稿にR-Shinyコードを修正しました。それは今実行され、問題はまだそこで発生します。 – SMzgr356