visnetwork节点标题内的闪亮动作按钮
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了visnetwork节点标题内的闪亮动作按钮相关的知识,希望对你有一定的参考价值。
我试图在visNetwork节点中嵌入一个操作按钮,以便通过单击工具提示中的按钮启动操作。
我可以让按钮显示在节点标签内,但单击时不会触发任何事件。我哪里错了?
最小的例子:
library(shiny)
library(visNetwork)
ui <- fluidPage(
visNetworkOutput("net")
)
server <- function(input, output)
## minimal nodes and edges example
nodes <- data.frame(id = 1, title = html("<button id='test' type='button' class='btn btn-default action-button'>test</button>"))
edges <- data.frame(from = c(1,1))
## render the single-node network
output$net = renderVisNetwork(visNetwork(nodes, edges))
## detect when the actionbutton is clicked
observeEvent(input$test,
print("clicked")
)
shinyApp(ui,server)
答案
只需在按钮上添加onclick
事件即可。在那里你可以触发javascript并使用Shiny.oninputchange()
根据需要创建一个input$test
。由于input$test
仅在您发送的值发生变化时触发,因此您应该使用Math.random()
生成(变化的)随机值。
可重复的例子:
library(shiny)
library(visNetwork)
ui <- fluidPage(
visNetworkOutput("net")
)
server <- function(input, output)
## minimal nodes and edges example
nodes <- data.frame(id = 1, title = HTML("<button id='test' type='button'
class='btn btn-default action-button' onclick ='Shiny.onInputChange(\"test\",
Math.random());'>test</button>"))
edges <- data.frame(from = c(1,1))
## render the single-node network
output$net = renderVisNetwork(visNetwork(nodes, edges))
## detect when the actionbutton is clicked
observeEvent(input$test,
print("clicked")
)
shinyApp(ui,server)
注意:
我不确定你的总体目标是什么,这个评论可能是不必要的,但只是一个指针,你也可以将onclick
事件绑定到除动作按钮之外的其他对象。 (也只是圆圈而不是弹出窗口)。
以上是关于visnetwork节点标题内的闪亮动作按钮的主要内容,如果未能解决你的问题,请参考以下文章