【问题标题】:How to run js function after popover content loads - after button click?如何在弹出内容加载后运行 js 功能 - 单击按钮后?
【发布时间】:2019-03-17 21:29:53
【问题描述】:

我有来自 W3 学校网站的这种引导弹出窗口,并根据我的情况编辑了代码(请参阅 onPopoverHtmlLoad() 函数):

<!DOCTYPE html> 
<!-- https://www.w3schools.com/bootstrap/tryit.asp?filename=trybs_popover&stacked=h -->
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container">
  <h3>Popover Example</h3>
  <a href="#" data-toggle="popover" data-html='true'title="Popover Header" data-content="Some content inside the popover <button id='inpopover_button'>false</button>">Toggle popover</a>
</div>

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

//how to ensure to run this function on popoverHtmlDomLoad?
function onPopoverHtmlLoad(){
  document.getElementById("inpopover_button").innerHTML = "true"
}
</script>

</body>
</html>

问题是,我如何在点击后更改弹出框的 HTML 数据内容 弹出按钮/触发器,好吗?有没有类似的功能 onHtmlDomPopoverLoad?

我很欣赏 Javascript 中的解决方案,但也接受 JQuery 帮助。我一直在寻找类似的问题,但还没有找到任何东西。

【问题讨论】:

    标签: javascript jquery html popover


    【解决方案1】:

    您可以将onPopoverHtmlLoad 替换为:

    function onPopoverHtmlLoad(){
        $("#inpopover_button").text("true")
    }
    

    并附加事件处理程序:

    $('[data-toggle="popover"]').on('shown.bs.popover', onPopoverHtmlLoad)
    

    查看codepen:https://codepen.io/anon/pen/MxXwQe

    【讨论】:

      【解决方案2】:

      在此处阅读有关引导弹出窗口事件的信息: https://getbootstrap.com/docs/4.0/components/popovers/#events

      $('#myPopover').on('hidden.bs.popover', function () {
        // do something…
      })
      

      <!DOCTYPE html> 
      <!-- https://www.w3schools.com/bootstrap/tryit.asp?filename=trybs_popover&stacked=h -->
      <html lang="en">
      <head>
        <title>Bootstrap Example</title>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
      </head>
      <body>
      
      <div class="container">
        <h3>Popover Example</h3>
        <a href="#" data-toggle="popover" data-html='true'title="Popover Header" data-content="Some content inside the popover <button id='inpopover_button'>false</button>">Toggle popover</a>
      </div>
      
      <script>
      $(document).ready(function(){
          $('[data-toggle="popover"]').popover()
              .on('shown.bs.popover', onPopoverHtmlLoad);
      });
      
      //how to ensure to run this function on popoverHtmlDomLoad?
      function onPopoverHtmlLoad(){
        document.getElementById("inpopover_button").innerHTML = "true"
      }
      </script>
      
      </body>
      </html>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-10
        • 2023-03-25
        • 2023-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-09
        相关资源
        最近更新 更多