R-Leaflet:R-Leaflet中的JavaScript仅适用于当前处于活动状态的标签,而不适用于所有标签

问题描述

我经常在R传单中包含一些onRender() JavaScript,以扩展某些功能

例如,下面我添加了JavaScript代码

$('.leaflet-control-layers-overlays').prepend('<label style=\"text-align:center\">My Epic Title</label>');

这将为图层控制框(source)添加标题

但是,如果我想在多个flexdashboard选项卡中包括多个传单地图,则仅当前处于活动状态的选项卡将运行其他javascript代码。下面的代码生成两个相同的传单地图,但是,只有一个地图运行JavaScript,这取决于刷新页面时选择了哪个选项卡。

有人可以解释如何确保所有标签都运行JavaScript代码吗?

---
title: "Leaflet Flexdashboard Javascript Multiple Tabs"
output: 
  flexdashboard::flex_dashboard:
    orientation: columns
    vertical_layout: fill
---

```{r setup,include=FALSE}
library(flexdashboard)
library(leaflet)
library(dplyr)
library(htmlwidgets)
```

Tab 1
===========================================================

```{r}
leaflet(elementId = "map1") %>%
  addTiles() %>%
  addLayersControl(overlayGroups = c("test1","test2"),options = layersControlOptions(collapsed = F)) %>%
  htmlwidgets::onRender("function(el,d){
      $('#map1 .leaflet-control-layers-overlays').prepend('<label style=\"text-align:center\">My Epic Title</label>');
  }")
```


Tab 2
===========================================================

```{r}
leaflet(elementId = "map2") %>%
  addTiles() %>%
  addLayersControl(overlayGroups = c("test1",d){
      $('#map2 .leaflet-control-layers-overlays').prepend('<label style=\"text-align:center\">My Epic Title</label>');
  }")
```

下面您只能看到一个选项卡具有JavaScript更改:

Tab 2 doesn't run JavaScript

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)