在多个div中选择文本时如何生成Bootstrap Popover

维尼特

当用户跨多个选择文本时,如何在鼠标事件(如mouseupclick)上生成Bootstrap弹出窗口<div>

我试图在这个小提琴中创建HTML和JQuery的副本(尽可能接近)

正如您在小提琴的示例中看到的那样,我不能使用div封装所有text<div>a 因为每个文本都有一个ID,该ID是我将要使用的弹出按钮的功能。

您会注意到,当一次div选择文本时,会出现一个弹出框,但是当您选择1个以上的文本时div,不会出现该弹出框。

有趣的是,它在一周左右的时间就可以在Firefox上运行,但是在我将Firefox更新到最新版本(66.0.2后就停止了工作此外,自开始以来,Chrome就一直存在此问题。

我已经尝试过在Stack Overflow上找到的其他解决方案,但是这些解决方案似乎都不适合我的情况。

关于我做错了什么的任何解决方案,我可以尝试执行哪些替代方法的解决方案,或者为什么这样做可能不起作用的原因?

编辑:

我也尝试mouseup过此操作,但在此版本的FF或最新的Chrome中似乎无法使用。click之所以将其更改为,是因为当用户clicks位于main_div弹出框之外或其他任何位置时,我还会关闭其他弹出框。由于该click事件是在事件发生之后mouseup发生的,因此我发现它会在出现后立即杀死我的弹出窗口。我必须从上述click事件中单击的弹出窗口列表中删除此弹出窗口,然后手动将其添加到希望发生的地方。

我使用没问题mouseup,只是尝试了一下,没有发现任何好处,click因此我暂时进行更改。

马克

只需将您的.on(“ click” ...)更改为.on(“ mouseup” ...)。

在Ubuntu 16.04,x64上测试。的Firefox 66.0.2

$("#main_div").on("mouseup", ".messagebox", function(e) {
  var selected_text = window.getSelection().toString();
  var elem = $(this);
  var row = elem.closest(".message_row");
  var id = $(row).attr("data-msg-id")
  e.stopPropagation();
  if (selected_text !== "") {
    elem.popover({
      placement: "top",
      content: ("ID:" + id + " Text: " + selected_text),
      trigger: "manual",
    });
    elem.popover("show");
  }
});

// Remove Popover on Hover
$("body").on('mouseenter', '.popover', function(e) {
  e.stopPropagation();
  $(this).remove();
});
#main_div {
  padding-top: 50px;
}

.messagebox {
  background: #f8f9fa;
  border: solid 1px #6c757d;
  margin-top: 5px;
  padding-left: 5px;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>

<div class="container">
  <div id="main_div">
    <div class="big_box">
      <div class="message_row" data-msg-id="50">
        <div class="messagebox">
          <div class="message_content">
            <p>
              Random Text Here.
            </p>
          </div>
        </div>
      </div>
      <div class="message_row" data-msg-id="51">
        <div class="messagebox">
          <div class="message_content">
            <p>
              Some Text here
            </p>
          </div>
        </div>
      </div>
      <div class="message_row" data-msg-id="52">
        <div class="messagebox">
          <div class="message_content">
            <p>
              Some more text here.
            </p>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Selenium ElementNotVisibleException for Bootstrap Popover

来自分类Dev

Bootstrap Popover在中间对齐

来自分类Dev

Bootstrap Popover Border CSS

来自分类Dev

Bootstrap Popover和Rails

来自分类Dev

Ajax的Bootstrap Popover

来自分类Dev

Bootstrap Popover Border CSS

来自分类Dev

Bootstrap Popover问题

来自分类Dev

Selenium ElementNotVisibleException for Bootstrap Popover

来自分类Dev

Bootstrap Popover功能

来自分类Dev

LI中的Bootstrap Popover

来自分类Dev

如何获得Bootstrap Popover高度?

来自分类Dev

当用户单击外部Popover时关闭Bootstrap Popover

来自分类Dev

bootstrap popover:使用一个popover将值放入多个文本框

来自分类Dev

Bootstrap Popover视口属性

来自分类Dev

Bootstrap Popover不起作用

来自分类Dev

Bootstrap Popover不会保存ckeckbox

来自分类Dev

UI Bootstrap Popover:更改宽度

来自分类Dev

单击并悬停Bootstrap 3 Popover

来自分类Dev

Bootstrap Popover和图像映射

来自分类Dev

Bootstrap Popover无法正常工作

来自分类Dev

浮动元素上的Bootstrap Popover

来自分类Dev

Bootstrap Popover不起作用

来自分类Dev

对Popover进行Bootstrap XSS攻击

来自分类Dev

Bootstrap Popover更改整个背景

来自分类Dev

在“模糊”上显示“ Bootstrap Popover”

来自分类Dev

禁用ngx-bootstrap popover?

来自分类Dev

输入上的Bootstrap Popover:悬停

来自分类Dev

带表的bootstrap popover 3.0

来自分类Dev

Bootstrap Popover显示相同的内容