Javascript 将取消绑定和bindAll仅限于和HTML元素
在Shiny站点中,他们说在对DOM进行更改之前,也就是说,添加或删除输入和输出,您需要通过调用unbindAll和bindAll来告诉Shiny: 问题是,我的web应用程序有两个部分:侧栏上的选择和根据用户选择显示信息的主容器。问题是: 假设用户已经选择了项1,那么容器上会显示结构1 当用户选择项2时,调用modifyDom时会删除结构1,最后一行Shining.bindAll会导致侧栏的选择重新初始化,因此它会选择项1并再次显示结构1。Javascript 将取消绑定和bindAll仅限于和HTML元素,javascript,jquery,html,r,shiny,Javascript,Jquery,Html,R,Shiny,在Shiny站点中,他们说在对DOM进行更改之前,也就是说,添加或删除输入和输出,您需要通过调用unbindAll和bindAll来告诉Shiny: 问题是,我的web应用程序有两个部分:侧栏上的选择和根据用户选择显示信息的主容器。问题是: 假设用户已经选择了项1,那么容器上会显示结构1 当用户选择项2时,调用modifyDom时会删除结构1,最后一行Shining.bindAll会导致侧栏的选择重新初始化,因此它会选择项1并再次显示结构1。 因此,我的问题是:在Shiny中是否有一种方法可以不
因此,我的问题是:在Shiny中是否有一种方法可以不解除所有对象的绑定,而只解除某个HTML元素中存在的对象的绑定。我以前从未使用过Shiny,但根据和搜索,unbindall和bindall函数也可以以下列方式使用: 不绑定 结合等位基因 其中元素似乎是document.getElementById函数或jQuery等效$'element'[0]返回的DOM元素 因此,您可以编写另一个类似这样的函数:
function modifyDomByElement (element) {
Shiny.unbindAll(element);
insertInputsAndOutputs();
removeOtherInputsAndOutputs();
Shiny.bindAll(element);
}
并保持modifyDom函数在发布时正常工作,别忘了
function modifyDomByElement (element) {
Shiny.unbindAll(element);
insertInputsAndOutputs();
removeOtherInputsAndOutputs();
Shiny.bindAll(element);
}