javascript - 为 DT 数据表上的双击事件创建 R 闪亮绑定
问题描述
我正在尝试通过使用 R 闪亮绑定双击 DT 数据表来创建一个动作。我没有明显的 JS 技能,所以我承认这是问题所在;-)。从 SO 上的示例中,我将以下代码拼凑在一起(代码片段并简化以显示问题):
library(shiny)
library(DT)
shiny::shinyServer(
function(input, output, session) {
data <- reactiveValues(data = NA)
data$data <- "some code to make the data"
output$table <- DT::renderDataTable({
DT::datatable(
data = data$data,
class = 'compact',
escape = FALSE,
rownames = FALSE,
selection = "single",
options = (
list(
dom = "t",
ordering = FALSE,
paging = FALSE,
autoWidth = FALSE,
scrollY = "100vh",
scrollCollapse = FALSE
)
),
callback = htmlwidgets::JS(" table.on('dblclick','tr',
function() {
var row_=table.cell(this).index().row;
var col=table.cell(this).index().column;
Shiny.setInputValue('dt_dblclick', {"dt_row": row_, "dt_col": col});
}
);")
)
}, server = FALSE)
observeEvent(input$dt_dblclick, {
print(input$dt_dblclick)
})
})
}
我正在尝试创建与闪亮input
对象 ( input$dt_dblclick
) 的绑定,并使用Shiny.setInputValue
. 但什么也没有发生。没有值被打印到控制台。请帮忙。谢谢。
解决方案
你必须使用td
而不是tr
. 并删除导致语法错误的双引号。
JS(
"table.on('dblclick', 'td',",
" function() {",
" var row = table.cell(this).index().row;",
" var col = table.cell(this).index().column;",
" Shiny.setInputValue('dt_dblclick', {dt_row: row, dt_col: col});",
" }",
");"
)
推荐阅读
- git - 如何从 git .patch 文件中删除文件权限更改?
- java - project-to-test pom 配置似乎没有生效
- python - Tensorflow模型量化最佳策略
- python - Pandas 滚动 std 产生不一致的结果并且与 values.std 不同
- python-3.x - (来自 dask 分布式)ImportError: cannot import name 'scheduler'
- url - Jekyll 使 url 可点击
- r - 识别多边形/边缘的最大/最小坐标 [R]
- angular - 每个 url 段都需要一个路由模块吗?
- css -
我正在努力解决移动设备中的 wordpress 网站速度问题。移动速度是 43 而桌面速度是 93 我看到主要问题来自预加载密钥请求时间。这个问题来自于
- visual-studio-code - VScode 远程开发:如何在运行真正的构建任务之前运行构建任务以获取环境变量?