【问题标题】:Line break in popover/tooltip of kableExtra table in R markdownR markdown 中 kableExtra 表的弹出框/工具提示中的换行符
【发布时间】:2021-04-20 16:05:26
【问题描述】:

我想在将鼠标悬停在表格的单元格上时在弹出显示中显示文本。那行得通,但是,我无法在该文本中换行。我的例子改编自这里:https://haozhu233.github.io/kableExtra/awesome_table_in_html.html

---
title: "Line break in popover"
output: html_document
---

<script>
$(document).ready(function(){
    $('[data-toggle="popover"]').popover(); 
});

</script>

```{r echo = FALSE}

knitr::opts_chunk$set(echo = TRUE)
library(kableExtra)

popover_dt <- data.frame(
  position = c("top", "bottom", "right", "left"),
  stringsAsFactors = FALSE
)
popover_dt$`Hover over these items` <- cell_spec(
  paste("Message on", popover_dt$position), # Cell texts
  popover = spec_popover(content = c("line\nbreak", "line<br/>break", "line&#013;break", "line&#10;break")))

kbl(popover_dt, escape = FALSE) %>%
  kable_paper("striped", full_width = FALSE)

```

但是,我没有开始工作的是在弹出窗口中换行和换行。我试过\n&lt;br&gt;&amp;#013;&amp;#10;。似乎没有任何尝试有效。知道如何解决这个问题吗?

【问题讨论】:

  • 尝试在你的js中添加html: true,像这样:$('[data-toggle="popover"]').popover({html: true});然后包括&lt;br/&gt;应该提供换行符
  • @Ben 我做了,请参阅编辑后的帖子。但是,它仍然不起作用。我把这条线放在它所属的地方了吗?对不起,我不知道js。到目前为止,我只使用过 R。
  • 不 - 只需将 html: true 添加到您所拥有的内容中 --- 这就是全部内容:&lt;script&gt; $(document).ready(function(){ $('[data-toggle="popover"]').popover({html: true}); }); &lt;/script&gt; 我将提供一个答案来澄清......

标签: html r r-markdown knitr kableextra


【解决方案1】:

您可以为文档添加自定义 css 样式,请参阅 this solution

---
title: "Line break in popover"
output: html_document
---

<script>
$(document).ready(function(){
    $('[data-toggle="popover"]').popover(); 
});
</script>

```{css, echo=FALSE}
div {
  white-space: pre-wrap;
}
```

```{r echo = FALSE}

knitr::opts_chunk$set(echo = TRUE)
library(kableExtra)



popover_dt <- data.frame(
  position = c("top", "bottom", "right", "left"),
  stringsAsFactors = FALSE
)
popover_dt$`Hover over these items` <- cell_spec(
  paste("Message on", popover_dt$position), # Cell texts
  popover = spec_popover(content = c("line\nbreak", "line<br>break", "line&#013;break", "line&#10;break")))

kbl(popover_dt, escape = FALSE) %>%
  kable_paper("striped", full_width = FALSE)

```

【讨论】:

    【解决方案2】:

    html: true 添加到您的javascript:

    <script>
    $(document).ready(function(){
        $('[data-toggle="popover"]').popover({html: true}); 
    });
    </script>
    

    那么&lt;br/&gt; 应该提供一个换行符。

    【讨论】:

      猜你喜欢
      • 2021-04-27
      • 2020-10-19
      • 1970-01-01
      • 2018-10-24
      • 2018-11-24
      • 2017-02-19
      • 2017-01-17
      • 2021-08-12
      • 2022-10-19
      相关资源
      最近更新 更多