HTML用户界面是否受Javascript加载限制?
我正在使用HTML用户界面是否受Javascript加载限制?,javascript,jquery,html,r,shiny,Javascript,Jquery,Html,R,Shiny,我正在使用R3.0.1和shinny0.7.0创建一个带有htmlui的闪亮网页 似乎我偶然发现了关于body元素的OnLoad()事件的限制或bug 正如Joe Cheng所说,由于Shiny不适合多个HTML页面,因此我尝试在必要时使用jQuery来显示和隐藏divs 除了在OnLoad事件中隐藏div之外,这项功能运行得相当好。在这种情况下,发光的似乎不再检测到无功输入组件 在下面,您可以看到这方面的测试用例: Server.R library(shiny) shinyServer(fu
R
3.0.1和shinny
0.7.0创建一个带有htmlui
的闪亮网页
似乎我偶然发现了关于body
元素的OnLoad()
事件的限制或bug
正如Joe Cheng所说,由于Shiny不适合多个HTML页面,因此我尝试在必要时使用jQuery
来显示和隐藏divs
除了在OnLoad事件中隐藏div之外,这项功能运行得相当好。在这种情况下,发光的
似乎不再检测到无功输入组件
在下面,您可以看到这方面的测试用例:
Server.R
library(shiny)
shinyServer(function(input, output) {
output$caption <- renderText({input$myInput})
})
如果按原样使用此代码,则会对myInput
组件中的更改做出反应,并将其写入标题
组件。另一方面,如果您在initForm()
中注释掉代码,它将停止响应您写入myInput
的任何内容
我用Firefox23.0.1测试了这个
有人知道我做错了什么吗?请看温斯顿的这篇文章
你可以写
shinyServer(function(input, output) {
output$caption <- renderText({input$myInput})
outputOptions(output, 'caption', suspendWhenHidden=FALSE)
})
shinyServer(功能(输入、输出){
输出$caption+1,解决了问题,尽管我仍然在问自己为什么只有在调用OnLoad
事件时才会发生这种情况。如果我不调用它并简单地隐藏并再次显示元素Shiny
仍然会对nput作出反应。我同意。我希望你不介意,但我已将此问题复制到位于的Shiny邮件列表中。这是完整的很好。我会不时检查你在闪亮邮件列表中的帖子,看看他们是否有回复。:-)FWIW,在谷歌论坛上,@YihueXie建议了另一种解决问题的方法,在隐藏或显示div
元素后触发hidden
和show
事件。
function showFoo(){
$('#foodiv').show();
$('#bardiv').hide();
}
function showBar(){
$('#foodiv').hide();
$('#bardiv').show();
}
function initForm(){
/*showFoo(); */
}
shinyServer(function(input, output) {
output$caption <- renderText({input$myInput})
outputOptions(output, 'caption', suspendWhenHidden=FALSE)
})