gpt4 book ai didi

jquery - 弹出窗口不适用于 Shiny 的 0.9

转载 作者:行者123 更新时间:2023-12-01 02:42:39 26 4
gpt4 key购买 nike

下面的最小 Shiny 应用程序生成一个带有弹出窗口的 html 表格。它在 Shiny 的 0.8 上工作得很好,但在 Shiny 的 0.9 上不起作用:只出现弹出窗口的标题,而不显示内容。 shiny-discuss上这个问题还没有解决。也许是由于 bootstrap 或 jQuery,它们已在 Shiny 的 0.9 中更新

tabl <- function(){
title <- "hello"
content <- "Goodbye"
out <- sprintf('<table style="width:300px">
<tr>
<td><a href="javascript: void(0)" data-toggle="popover" data-content="%s" data-html="true" data-animation="true" data-placement="bottom" data-trigger="hover" title="%s">Jill</a></td>
<td>Smith</td>
<td>50</td>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>
</table>
', title, content)
out <- tagList(
singleton(
tags$head(
tags$script("$(function() { $(\"[data-toggle='popover']\").popover(); })")
)
),
HTML(out)
)
return(out)
}

runApp(
list(
ui=pageWithSidebar(
headerPanel(""),
sidebarPanel(
),
mainPanel(
uiOutput("htmltable")
)
),
server=function(input,output,session){
output$htmltable <- renderUI({ tabl() })
})
)

最佳答案

这是一个时间问题:将您的功能更改为

tags$script("$(setTimeout(function() { $(\"[data-toggle='popover']\").popover(); }),3000)")
例如,它应该可以工作。这些元素不存在于原始版本的 DOM 中。以上是解决该问题的一种廉价(不一定是好的)方法。

Shiny 的 0.9 发生了变化

Make tags$head() and singleton() behave correctly when used with
renderUI() and uiOutput(). Previously, "hoisting content to the head" and "only rendering items a single time" were features that worked only when the page was initially loading, not in dynamic rendering.

大概之前脚本没有被提升到头部并且执行顺序不同。

关于jquery - 弹出窗口不适用于 Shiny 的 0.9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22629388/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com