Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Shiny忙时禁用元素_Javascript_R_Shiny_Dropdownbutton - Fatal编程技术网

Javascript 在Shiny忙时禁用元素

Javascript 在Shiny忙时禁用元素,javascript,r,shiny,dropdownbutton,Javascript,R,Shiny,Dropdownbutton,我使用的是这个问题中的一段javascript: 它适用于按钮,但我也希望禁用类似于sliderInput、selectInput和textInput的功能 我试图将“按钮”替换为“输入”,这会禁用textinput字段。我想知道是否有一种方法可以禁用1go中的所有元素 更大的问题是: 当您打开下拉按钮时,关闭按钮通常会删除模式对话框,以防javascript标记从下面的演示应用程序中删除。但是,当脚本在应用程序中时,关闭按钮由于某种原因不再起作用。它仍然打印文本命令,这意味着它被观察到,但模态

我使用的是这个问题中的一段
javascript

它适用于按钮,但我也希望禁用类似于
sliderInput
selectInput
textInput
的功能

我试图将“按钮”替换为“输入”,这会禁用
textinput
字段。我想知道是否有一种方法可以禁用1go中的所有元素

更大的问题是: 当您打开
下拉按钮时
,关闭按钮通常会删除
模式对话框
,以防javascript标记从下面的演示应用程序中删除。但是,当脚本在应用程序中时,关闭按钮由于某种原因不再起作用。它仍然打印文本命令,这意味着它被观察到,但模态没有关闭。对话框中的另一个按钮仍然正常工作

应用程序:

库(闪亮)
图书馆(shinyWidgets)

ui我无法帮助您使用close按钮,尽管我发现只要您设置
shinny:idle
句柄,对JavaScript的任何调用都将触发
shinny:idle
,从而运行处理程序,而不是
toggleDropdownButton
后面的JavaScript代码

然而,如何在JavaScript中选择多个元素的第一个问题可以通过一点
jQuery
来解决。将代码更改为

$(document).on('shiny:busy', function() {
  var $inputs = $('button,input');
console.log($inputs);
$inputs.prop('disabled', true);
});

$(document).on('shiny:idle', function() {
var $inputs = $('button,input');
console.log($inputs);
$inputs.prop('disabled', false);
})
使用它,您可以选择按钮和文本输入。现在,您可以了解使用哪种代码来禁用下拉列表


顺便说一句:也许你想看看
shinyjs::disable
。使用此功能,您可以从
R
侧禁用控件。您可以将其放在长时间计算的开始,并在结束时使用
shinyjs::enable

您能确认关闭按钮不起作用吗?shinywidgets的制造商说要下载github版本,但这也没能解决我的问题,因为他要推出最新版本。现在通过运行devtools::install_github(“dreamRs/shinyWidgets”)修复了此问题。是否有线索表明哪些关键字针对滑块并选择Input?顺便说一句,我也使用了shinyjs::disable和enable,但它们在“忙”时不起作用。该应用程序可以在几秒钟内计算出我的整个模型和绘图,但绘图的渲染有时需要30秒(Plotly的使用非常繁重),而R会认为在应用程序停止忙碌之前很久就可以启用它。不过javascript解决方案工作得非常完美。现在只需找到正确的标记即可
$(document).on('shiny:busy', function() {
  var $inputs = $('button,input');
console.log($inputs);
$inputs.prop('disabled', true);
});

$(document).on('shiny:idle', function() {
var $inputs = $('button,input');
console.log($inputs);
$inputs.prop('disabled', false);
})